<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <meta name="theme-color" content="#3367D6"/>
  <link rel="apple-touch-icon" href="/icons-192.png">
  <link rel="manifest" href="/manifest.json">
  
  <meta name="generator" content="Hexo 6.3.0">

  

  

  
    <meta name="author" content="QAQ">
  

  

  

  <title>SQL构建工具 | QAQ</title>

  

  
    <link rel="shortcut icon" href="/blog/favicon.ico">
  

  <!--mathjax latex数学公式显示支持-->
  
  

  
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/typeface-source-code-pro@1.1.13/index.min.css">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.7.0/build/styles/monokai.min.css">
  

  

  
<link rel="stylesheet" href="/blog/css/style.css">

</head>
<body>
  <div class="root-container">
    
<!-- header container -->
<header class="header-container post">
  
    <div class="post-image" style="background-image: url(https://qiniu.sukoshi.xyz/src/images/68686407_p0.jpg)"></div>
  

  <!-- navbar -->
<nav class="navbar">
  <div class="navbar-content">
    <!-- logo -->
    <div class="navbar-logo">
      <a href="/blog/">
        
          QAQ
        
      </a>
    </div>
    <!-- link -->
    <div class="navbar-link">
      <div class="navbar-btn">
        <div></div>
        <div></div>
        <div></div>
      </div>
      <ul class="navbar-list">
        
      </ul>
    </div>
  </div>
</nav>

  
  

  
  

  
  

  
  

  
  
    <div class="header-content">
      <div class="post-text layout-block">
        <div class="layout-margin">
          <h1 class="title-wrap">SQL构建工具</h1>
          <h2 class="title-sub-wrap">
            <strong>QAQ</strong>
            <span>发布于</span>
            <time  class="article-date" datetime="2023-06-11T07:18:50.000Z" itemprop="datePublished">2023-06-11</time>
          </h2>
          
            <h2 class="last-time">
              <span>最后更新于</span>
              <time  class="article-updated" datetime="2024-04-09T01:06:51.768Z" itemprop="dateUpdated">2024-04-09</time>
            </h2>
          
          
          <ul class="wrap-list dark">
  
</ul>
          <ul class="wrap-list dark">
  
    <li><a href="/blog/tags/java/">🏷️ java</a></li>
  
</ul>
        </div>
      </div>
    </div>
  

  
  
  
</header>

    <!-- 文章 -->

<!-- 文章内容 -->
<div class="body-container">
  <article class="content-container layout-block post-container">
    <div class="article-info">
      
      
      
      
      <section class="article-entry markdown-body layout-margin content-padding--large soft-size--large soft-style--box">
        <div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="抱歉，这个密码看着不太对，请再试试。" data-whm="抱歉，这个文章不能被纠正，不过您还是能看看解密后的内容。">
  <script id="hbeData" type="hbeData" data-hmacdigest="97d6e3ff36cc6cc11e598087c277a02f064ddc79d1e48fea774859528c40d757">f5d7027a76d40f8b4fe5a79716a716fbff9f8adf3504e592017ad93e869f260a67d4a72ef4f6d4155b639b5fe472a3af0e891cd4d721bc1a5e319acc20eaacd2e8893067133bd3b9322ba2c2af87ccbfa8ea0ab5ff4831316323de7d671f9a05ccb7991821c98ef510fff100ad887db95801b22aa302f9571a7a95aa073e313a25c52e2f4c2ebca8ca833cdbb4010127c703612c488fbf9da76518cdedc96009bed5e0ae7d88bc69854fa78e38666c4356118e4fc46b27feb9791f4d6f57f1eb1c5c27202214db2cb50ead70ee2c13b28577dbdfbd447f143d76a79d2adbd1c6c9b8e1d569b3517f5d5004ba73cd999d55e46be3635305f3275993318ef219515f523f80404255fbf40480be02df05c144351ac3743b3c396777e0f622b923ef94289490e2c07182f00a431666aea3bc82959c99ab62a34f971d3203d6c85d6750ac45ee1c322e08e6ac630ae9357baa7ed612f838db27c48b7bd56a60dcb659f86ebf57582b371444b44a8260153411db1d9b5ee640368fcba6a44bc6661855dbdac6e78547e964b0fe317ffafdd0cb97a2663719ef833899b1ae1de6a85b921a1aab24072fdf43a7df85c1ddc4cd5756223dc2bc293e38082e42b77059d9322f63da905c2f1972757036bc6f9ea03b359dd5718dc802935f84258e4389837c2e3299ccfbd2dedc8a5925b0efde970725cc086c98f14b4ca1f21a98fa016a1f784167b6d6c33311a3fc760b7bda9af2bcb0d9f6f7cbae9bc5dfd84267d430ceb4ab8d2673e53b157d2c5f96b68adf1fe8f126d52a1a96bd24dd3afe6727b16106881fcaeb74b2477b550902bcbec086717829a0f4919dedfab61d5d913186d23bdbd55dd3dc753966e4a6a4fa12256495c21a4968e35e38f94fbe737c785479e0b9dd719b373aa79cb1a829952da58274079dc1653008f1e4cd0eef89756f02c0faa068499358c02eb9f337530536dc76a382d6740093909059f2a1fef70998533953a8447253a01888bacf9eb5bfb70160f78d262d402dce67c7b0ea5496beea2655548efc2620ba777771e7fb2c0c7a27ee14c270409aa49492437fd8032da8c4231bfe6bb3dc0c1fea53b2022145f7f4212f2df05cd4f78cb832ace8b434f3671bad1f9a3a37c8e08ed05cd4195152c7d268e30d5e991f0441dab6dfbd98bbb2adb7b7f3e1cf52dd833a07749d2793828740df7538c3346644ca55ccf93c7a638481660c0aa67fba5d9619c43ddb321b3a2471bf46a415d7e28dae3de6a9977b23b4ee023ae988a9bcb8c4cbfe50c3e6e37014d2b4118097e61194c35d18bf41bc8f3acc8a0af68fb8febc9d9ae4bc29dbecfeb34a9c0b59a59931f963dae2108bb924e23f78a3a4a94575881257c293650de2d23dc8a2b27874abf3edcfd9c1440d952a1b2a623b7d695051dc26b8b80ab644858cc207703652bf4b0b172e7af78f43b19143d56f1e4deea5d82a75e7412361a7b9ccc4face8623c324cfa302a9aad8d3974aa3b7fa91426a7fe9260c3d348ebf5cd5d52e2d94683fa9b26f15b7d2930e8785fefbe91555e30a4e94c659cdb951547d4345c3a8712471d3519a1ea04645f1a5d4a4726be09f414589b4aaceef4d90e1643e8984ff606976c21b71c77db94beca1ad0818c997ad92c166a502b119bab58deeb042d055ac4b3de820e3ee45147cb54a0252c0c0adff24c3cc70d5c3116cfcbce04ac918d125f149b2ec6d9794d4158bebf6ab23a7c5635641a6d7fb1f865343fd436d475829a516a62308d0ac3db7446874fd466949b214f8e511b93ca9f4abe120638448d258fa2c6e1bfbfa7317fb020b884ee97f58cb4188cc94764fc861a698966e2be8c14fd59dac95aa6875e18be971f48d90cc0af9567a02b0f38efb3b819a926145c7ee6a9365fce4be80ac87e087d3bc3d9a348a50c3a8394522fa73cb4ccec766222ac73038ef6a253304f36aed7d6db5fd2db98983cfdf4ab560610b6ff948c8acbd08292ab0e109b574a4566ba72d04ee56eda974ff7af8e9df4834647b155677b92b870fe6f088967cb452760c581c02474c5a89328ff59f952fce7844bd0ef00613a2d33ced04e08e4dab284a4a23bf62e7955786ba25b915821a7db08531f1b9f19210197b0ffd04be25924fee2d6a793ffd03a8d7730fd20c687065f03df74c50f4e63fdf425368010aa43afa20a197754143672eaafca82e6d63dfc0adc34165ad24a1d9eff9864555c63237609892522ba2e1a747e089ad38160b6f9b24098c92d0980e5dc5d73bbc560d13e1b243f72283f313b082352c0bcf93a3854e13c58c41ec268d87d9d2fce49ce518541581a8e23cd61252dcc8b68043c9f6a2a56a1c2c9b062e0a1f99c01583254b5e817a31f9df35f4c77c35aee4f9b730009ee133c03a6c6bc718d91da73a9364407c06e601d1ba3b6cd02d9a2c80765dcf5d002beab26a38c9dfa5a4289a5be1e9e0a9526fa762648faa5f59c0325708ece640b5d1712b89e7045230b50597a2d20f189596e8ce2a528c61e6b0ab1503d33fbe90cebb990d75e90f3536263921a2d9fd0a2f469a7bce70ca5266ee0ab48802570b828d1f1c45de771fcf424aabed2bcf1063f98329e962e8a2905515f53d23b1cf7c37a7814f0448b770a76b16807fcd06fc0edd9b772cada797cdf460cbe9902a1f54bb987fa20b34667eb3a6fae239cef2b1a80687e3b72f2c738035162027b0fb8313d8afc05176205687914a80754f7214c910dc0160254c5a61078f65b85c5783d8fe4d37bf9892fad673fbcaf671782a94d19aa68873d811e9efd68844adefda7e99680bf45bf56640382db70d4081085387b91988a794f1f678b4e88e5152a4958909bb3735c446636cb01dbfb60396447c9f0b60daded71369f04f5e61355373f99080f141d47437eaecc19456ce1094c922ac8f77b474b847250dc247cb2bb201e4febe870cc4fd2b76522ec3b3d6f0706436d04859a77c625cb598b911458d4229caa0fe94a53f12c3df58ad36d542c212978f11513603ce17fa0b2e9f725c6036445d974af60ff6e3aeaa490ce2a653dc059d1367cd62c12ecf9f379d535e2976b509f49adc4937923acf431303589f8ff4b9018dfc4b249a6a0c3871eecaaefb13f89cc6bfcc7d63d2d3f1c63c40e1ac0ee3b85c677fba0d8df0526a8cb323eca657dc80ab144b525ed9c937ea59a7a4ab1b372fd2b6789f1274964c1609335570fa9523d47072a57d199755bfc6202dd79999ca45cda8a4c1ace5761e8309a27978d61a66f274a27c2f969885c22457488bbd5aa3fdfc2058092f92838d2ba6ab3cde6b8cc397f2d933533b488915d37c9bd6538e6fc2f9ac19fb4c025d3675a8f30ba919c69d5b6a82955343660c0d2dbd84659f653d4fb5d859b8e2b005d743d49a387484226276b35169b3cdbb09198b6c10c509aa43c81f0622252d76d3f8bdb28d8cb62aa748b889e6cc7693eba539fbba895e3e97adff8aef32987953acac6601f2fefa1f78333610bb92f8a0ee411432236b1a469b9a2ac34ec7c59f73459340bf03ae4d46bdf022067f7f0fb2e2d7f4b98966e269197098b194313a04b6da986c795848a73f791fb63ae962f8766e4e34c246897a4281116a6b8d962500f853b6ebd8385e96a8d8f6c07314bdc210980128c45140751416d8401723343cf85ff217781408f19fdd87c9fd07a784839ef2d06190ded95b9c9240699a4cef8393a2097d81a4dec71463341464d786d80c247e944e36bb7eeba4f5c847b983c92b28ae050568d744c1f632efd8ca0b22f7803f4204ee279ecb6eca79c316fd920c334297abf06ca7c9309959a40e93666458b14ee69c978013dff957eef8635505674b30c2055a5230376cfbe9920580f4a50f3eaaf495690c377b1cca147b30b1ca0cc3a4c619e193f6084f16eac1780cd2ac27233a630990fde8ac29eb674f245af4e84fe87837755723ad96628076f9a8208543315ca81a04e28aff558bd1bf9b4921b9fdb1a7cc18f2772c2bed367a9b139bac90443ed52f8c5630c5359ebea19f9ffb2ade564b5c6c132bccb4a9ded49cf6b30457a6afa5fef136e34bd30c7b530b55b0403cd73a6197d96712bc54801e503a101e41b006cd9aea3ebf5a0ae9b0669baa28dc965b2086a3de5c674179d997cbe319f155cad81bbd4cdbc0ec9583796aaff6bbc347281c1331898037fddaf046c923e13c354ed5ad4a823d643b9c8fc737dbc9fb7e480419dc70bb0922f98f982f9f67a713448283defe26131037936197bfc7670f9093be8152f92c458f88362ee7d9d4179c70933a78b58981d0a8f397b0f844f8f3877885c5a39bd80493ba709b3f92b647ca6765c624896fbad9e93f5d460204bb2b07fb9809da6be434bd649b4dd6a53538adda0044d9dcc18963c9103478a2ba676ded7dab020d7a1fd2f6fa0758eca9ef927c12e1a7e11fcda8a12908ff4858639c6314ab0fe2b3ef16021871c5a7a43d21af205d950f21b918703e1706b00f52615a031af2fe9aff45d120f7839f8412d9b1079f25a355a68a39ee65a26f95931acaaaacfc6a643f1d8b3fcad04a2525090724efd9f25e149963c67248fa43fa745dfd47c6b23be6541c714d4744b9dd7ce84e263f091e2da1f15ad433c759b4d2baaff0769a3afc43c694bc1992c158ee683d77bb2f52881307d9fca3fa275c0d540d5fb7c436b9c74c58057c5327075a298d56195756aa1a7ab88a438541cd4d82582e3c43569f5b94f3a36ba7c42f2ce5967e37cae40916e1494afaba03f12f3cfb62c35c82c8e1d1a622e02ab4a3f8c69d1e27753cafb268f3c9923e7d7404f0dd8b9671c83a18fdab348581aa09e30f4bf231ed9dacb59027236e7949b3d88e1f9b689c3cee43a7eb06dc958ce9c9ecd35841dc041cde8496156ce88c91d27856edb1560c84c0c02d4daa255204d3d8443806ce4ec9a28a3ff3b0b0390672a9b3474c853d30c7b1511fa0f4d09b5a3382215a63ddc005f260abd6ae31a30704afd5dd37a7cd61f94e231d359f7ae5e6cda852f55d9f50b4f13d4278556128035e239b2f6ce838db20098f7bba29c690c5ff932b5345b6cff96ffa771a16cdc406747a485c81c2b5f9a9a6e98f69524ae9c9ae786581f54e7daa81081583bb3ee3c749195f0fc6886ae8c30df5947f86bc7eb53f3a65aed1016dcbada5f5ba8b23d0b1bc788b8cea9c640d2083bc323d30d4491d3412d05d011218ddd3bfaacb00fc3760bc509dae3012fb674b7ddd669c07120b40fd4e68ddbcd4f10a826cdcbf79c3dc11b5ab39f10660127ddef40defec3c3bc19c20bdc66a3e3ffd7e53084fbdd97bd21ec5043975e9181795ba7a8f110d6675e676d10ae140ae654197ec7d9dc8a26c2a4e19b93959da02d3c22f58d3ad607c63d57a64d23dc56fb6f94074a4c54100b0547b95792fc379c4fcc1355e3bc5861a1998829baa5ca5a0cb8cfb739d99aa21194a5d999f69727e426ef4cc250015b7a7c4dc55940c25598d86fa0786c23ba82ae3141611f43a5824eaf1f75263b86e078ccf5643a85e8c4b2b824eea58f01729a0cd15859c0d6a1e710f2187fd4cc5e00f7cf1d63c679370a9e3561c6818b0989bfa474d8dbca218ecbc3e78c4f147a93d2962f2b09a30116cad2bd88e413cf83322f8b79202a4a79c4c35fb79e73ec3c5121d573b850f91bddbc5a68ebbb1c21c742e33021e9231b2b0445a0d1d0461f984519b1b9099545ac562189c40cb2c1a46130c4c34432c12c2609f80cad1418046e003c8e7643d20ff8a5b16f75c41307885b6ca0c16c6da262008af74ba2b06636fe1a4e72ff33594a22a8898354946f954c665f674885aa7a4e68299b39ff701c9d4bc480795b51b61b73adb131d41e0353c71f77de2f6be61e6cd87fcea7b9a30e0be075ce544472a5282b5f0090548404014724256e01b201141ca875027f018c90ff938fd2224126fdfa91801ee5f9b319228c3e5385c6174c720f1beed5dee17aa64dbd63daf8e70c540e89d9ad33b4a76a0931c56395b1b34c7c6c0995a9bd0a407f71e2dee9ae56df3e012d6263d357a5f1195be1ca224d0acf5cc18c25e3b72a365d8446b627911598d29790f512bffc24522df48e653c883f2622839aa8fa62db13481b18f56089daf91884febb8da9d47dff4eb3ac9acaf91184487c22a3589ac7a5f2c378561b28f39fdc2ab0b1c0a9fec0d2c22535ca98128cb3072310ce947ae7d645208c8a0d5f221f26019580e17636b47cdc4ce6f531bd3ac45fb1f6b49071afbd336a328b4276420d9f73c7359c9da0cc7b2973c5e9d310e20c02b6669d84c6de5060bfd1961e99310f1fef004073e48365e8534e91c9b0ed86e20aecf25a797c4d693f73f59d6369e4c1bbfcc64f5973afc7331194c1f56c146d4017d32538d9a6504484c2bb20bc245d740a2e1368e6acbac00bdfc0d49763ca14dfb5a1cc7a97fb50e8dd106b9353d53a8d150c4b4432f0493fc1094a0a52945271c8108cd1f6fb81f7064548f140d6f0cfd59a97e37635df900b709345697e7de77784042c7ed67b7549ee7a08cf73357764027ae1fd4cd167dca48b0deff904f6d6b191777c4ac7b00243ef686526c96db402d17455197ee4682359adae7b8f4c692559a0d0b2948ec92a5dec6d5bae77aad1373304c92266a441d870eb47896e46284ddf1192a4e4a07f48fbff25e90b3e785827e65a1a354d1340333ce1580dd473de4d94793e7b5aae0ce989412fbd6f86c13566c7f46245fc595c5685924c22390212f2c27a1ec3f1ddaf26f4e202d70cc7afa4d947a2e7cd8aa69bfcf857f2855a34952f0087c473200ac54778842cf1d7b102a56be4a3e4ebd2135a896ade86d05a26b944195bb53522ca115e742fdc87acec86fbfc54b07893d97983d899ffcc31d60153d2a6f9ee4aed9d7f4b2c55b1d8d7fe846b5d68187b0309db9c1b733415e4ce1f2a5fe0d5980a719b1d7f1334141302eb461627ec2f93ba2994f44058671dc7b1ffa558550545b1f40c4aa4771a30ae0b07d8e86914ce2b534b187f63d429fd40d21916947f56992db07f2360900cc9d0cf2040016267816e91c145a2ed1a1cb840eee939b345f6b77daff15274ba3ff37c63095211c981322caf61ae4cfca24f94a3f538a992d408ea92d1b53ed7b0092b52ab1257220a5802d680a38c53a4b97554b75d44a69915c222dd2e739539d4d8963617d6353ecf92914fafac077d5a3fad872e9b08ddd8397ba8a26919f31707e892ec5ea5a88cd59cdd31df1ea259371f89dd3dac93e51ac4c149d3902ba7c98950a9cca4751ee7032dff32f018ad20cb777fd67cdb5e4a4607a5e807b6ec3a73c27bee403fb5d63e0af6198d85bff467f78079cca99cbc6da44900c04f799c0f869f23dfcbcc96d19c49f84bffccb2c573a6d0cc5012c6c01db123111996d9e73aeb47392f68bb4f5170ecb2820972045da4b3eeee89692ff7cfde55fd209f0985e0acc3485989cd4891b9ee78087d6c58623545281debf36db55eefb08e6ae30a6443dff04c2adb99ef9e54d72120ba11e87358522030af6f16e79bb24245b599a2db0f7ebfe76a43db84b06792434410f62b6c1214688fff727e1e30c1b1dec7ebd8eb7406ee36184da6b2216b6847017ef346c92a1b5f30cd085d5b1240d116999dece2020e8fe6391371e028d2e56411b94bbc2a91c4d0fefd3f052cf3071ed71224576b68543725972530b0abb8c5696922d5c9083e0216a9bdc2e92e6867e1764f39055eae4dcc2247935418d42700493dd22cd95976bdff1d11b6f75b4154687a84745d8c561511e322eba3b99455fcac689e645b98ae3f6161dfa845f4fab808927976ec8486206fd48dade5661375a714d65c8f42c2ca2827f343888c711a05cdf23a702ac01508cc6f5ff040905660f593b28c10d27d026fa91e126e4b8b28cb7449f60ea1ac7b18e026ed2661632c723ee3f08fc44b322f423b7b2b6b4f7ee0eacc90a596c2c212f440f27e064e6dea52e87deb7710e3ab47e26fbfb95614a5e7d9aa02ce960f665f44c20ff2db565e7689e95dffdea15453382e2eec1b5940fe53d745edf31e9dea897a43c59c1dc275f494438a69decf8b69f015959283980cd865ad7018675eb4ac1807c1da04f6dfadab74735e416ec4d9e111cde03505207aeaae89cd860fb3f774b83e29763421320b5cb48a713c56589a52343523009fcbf6cb79ea76c8698445b301c3ad78ef316b2a9a8606bde88423304073531212f036c66c3d1f3aa490401b6be3419c6d75f80dcaaade81b43701664614380960d855a35759766cc256511fc4967208f2901166f1bcd55d793372225e0719d6fdccda8512f55fa2e3b6727c0c0a9c696ba6f5f334dcc687df791f2f284563ddf86f3ef2e9b182df1c8b23fbdb7c10cd3767c2eca15179c59cd626bbbfcf4877ccf35d3e19ea7f47b0b43ec88adf3cf0b754be3210970bfea33c2aaea91ec8567c7e5e50a5059236070baf8eff419e2b68e7ba8fadf6d256671ab17912317c11241ce0d52b72fd613bb4a51a9583f6bd7f2c09fa40fc794feb802d436ac4b54a8e53469a2e138095cbb51e138668f755350b384bcf79df2da38ca1921feafb9655ecf56dbf0326d5b3e643221f154ff935e93c80e450e00958ac21d0c12676b3637407875ed5047d5a5a292e20db25b4da1f37b6c23a0f14bb9056571702cbe04b2416bdafc6f6ff41c2c5e049d3e500749063182b664d4f038435e1e35d5ee47a6acd577919da0eaefeed1cab51b6fbd26ddb6e2f263b02f60546be62c009a276e120fb4ad408cfce3c04933a2fb5a94b36f8e75a57eabb8a50def88bb7fe412cf7ce03bbb35a87a19173bde87279475724a06fda11e6a284484285f42f969b4282b718bf8c20dc3d6fa711ec9ed210897d51fdd2d0ac785472f292de06a79977105e301ea9e4faaec0471630f4ebc45c91f7aaab333992dff7f81612c6c4aae9d33d0bea37b23b76e1f0095a1cc17265439329495e68393b35db42c69a596d368c120136b922621bd069a08f33a66cf4d5d7caa371fce762096a465148c919a1544d2c37a60c76ab1fc5875f5fe870af9437bdf513f90baa69b097d652b6a74193c3c45ecc8a1efb9af671ecd3a22a635d1042bec82825a02e3ef8c9bb861b80b2fa3df6477621c18621992ba2ecc6ca25aa753b048466943246bae2473fedb2b77eabbc89f34c2e6ed46c9241d27ce878a672ad44fcad5cb83879bae50622b99f7014550d633b36823cad7aa0a5b2bdb974e66d7bc53133c30593b617ec37de44f8e4d7a964cfce08c4b8677cafd0e63fe672f74f7560f5b05e594f3b21a963efb5bef7fa2e13d1705ba103bbedaeca71a24f3493255679969b872fe578cde5cc9f34912218161caad6e1ecb0e2216c57162857af7a1c0c47648561764091358c47d3cd7d2995ef72723360346120a3cff2d672468b53d7c87b5092fce0b286da74f15233910b5600e8920bba7edf3b93b2fbc7a2c1d1443645f6aaf13b46522c09dc0e67bd844b37ed4508638dea6c30cfe59ac5fbe6ff579f6b6eb6f44f0a2a4616e1a164b2e84685e06fe9c0ef0d5ee5035ede0e662bfd2298520cf81ae27e4ba286428268ce418cea40593256f6221637e7a2c1642790a67bcf5610d37a551261be887cf5b88c0256f9fa38b0c5fed9a63442a2e3c84cf85b3061735d3746d81c69af75ba82baa5b1712910282940207743f890315eeb10c0efb898b6b0bc89c66cfead57c552c7d3fedb598d43dfbb2cd4da442d9ef88c09a7f5a32d29f8f2dfca5e95cb1e2ea7f8a029f9a9d0ce22a6cb8e5c882b7cee2b632aa83ff297bc450331e830b87d8bf48fddf358a9e74b3d2d2870755c6f8c877d54dfe8a17acee0eced6fab3058f6aba839924e6a9ce57c83a1a65fedf933fde57349f848a4322473f86afe6976c976619634c8977c5adff4b421b1a1439b036cc381a877ed65a47592f7e8ddd93f9027a6aedbd735ea6bf33bae3af03321d8c2d14d0f43a784ac990eddd6056f18ae54c41e20ef63a1e1ed4ed58917d851e78cb55d0b3c2309ed50402c2851891174d3c990597508316138561a4c0f2afba7da9722f7ab5e6bf10669e87d6e4cbf5f0e4fc41458aa4b1b6a7a243082846091456c44270846d4170e45f11343c1bccdcd5ba5a5e39d2fd6f4d3bc7f0a9ac4548bf40a106cf8cdd362333429dcd0c4cdc4d5c244f081c830f3a6e814016530f2fb162a1a3027baf63fa7eca2a87b8635927547b0e2628d13a8e5baeb4f712c423abbe4fef9e6c981fd11efbcceb4b063a6b007c03d0a7c332b19b8a381254cd9b6b91cad545f9bbe7efdf5f943fb974f9936e6c09849db695973f0856bda71a5a14f1f90da0e638566fc0101b548a7919e58be1cb007494cd13f9bb1c29f13f6c110cf5366b43d22f0e5db6d6b49fd553299ea41291a15bdcf597be8f4bd35094473e43cf3bd6a492ec9915a11d01f30d2d8be215314b84c4afa96b47f091ce18fbc155174313516b6e2d17fdfca5ae49a0465e56f36d5f0e4a174b9aaf0a9cb644ddb1931f2bb4a03237f123c19e0f11784ad37c9661ff0e6c9035dd0a1da226ff4e37531721ae3c217ec94556ac886bf3fa4dc66c79256f3557fad970b64fd7ac60ec90c400d7f86bab852af99af58262f9e0a283be5fc3a804641e35833d26a9adfed44f5e28a224323eeaadc7e78a111479de58a30e420ed969e559a9db73b018fcf8b01b7617c3766ccb95c3348b6c6c5ea38f0bdcff6d342f6efdc0438e5d91d664cee04ad550827ae43acebf696744bf0a8ca5e472041986a963fc725a3f22a8a5fc197d43ac3d0983979b6a40f51e3aa8fc5143e39aa9109fac1661b85a5077b2e755702c232cfdb3a5e045c22e20890835f0cbcf97d51c7064315d7d1c9ae1d2dbf5ba68c09984df685705b44699a51431175b44b9a8e42074b1b6bd026c0f704436140fdccf0113be60b12298e1f67e1f9e97a61d043601a47e0390eee7202cb1a7f7b2c5baa94e073f98bb58b25b44ec0ccc6e11744c060b0bca68683b1b430167f9b15a593a462142fd2f1329c29af2fa8a8ba2bc18dfbf8238faf36dffc9afedcaade9fdd66758d4cb73334b80102c49c31d272ad1927d970fb59872bc36592cd1cfd922c795f13fdcdf0c0f52b2194ffe7664be4a616e4ca67654a9b325da08763a0865f68b4ccaa5d595a1a11075801d8b736db5f7e7f78c19b2b464ea83180fd46171922cc831dfbc064e9157c048924b438bd2fdafd37ebb560ce4df11a09245bbe0d707047e9eb792cde11ca6eb1728f094138df95707b190e919035cb7e27639dd445c955e6b90692f49ade15f0051fe05e4772abd4fc8ec610e412daa22a665c9a6ebe30e64294dac276a18d3e0efb1c15cd498d19168f3dd9b53c883579673ea3a2db446c861efed49e0c016159878e4eb23cd9d988a393b43019d9d14dc0329a1d755640e1915b63cdd31d3b3a99a6f9f273aa0482092bb17aebc334adc924412569b90565cc05ed0ee648cf67d63093d864f65e0efe3a31ae338e8b82a697567508de1a1bdb781829955b1add5c7f6580f2821feca3f9ccd1cf9528438261500f69fd2379e6b98071abbd7ecc415baad2a6b50bdd26f0e9e05dd8e269e4f3adff931323c46f6add66b6e01141feabf29c67e99ca4d3c14d2e0c50e3b9b62144bbdeebb0923a27a7f7eba2e9dabfa0add73b6ba17e29c713e09e84c75517e128eff31d5a935d9c4f2661e9aec406dc382938db54d36b924db50a0e4e3d9686074fa43c35a0ed54fe574ba1cd5fe49133cad326e2bc538f8ba1b1dc3bef7a4f0262b1a87e76980fa686b2ca9b20fd992e6c588913a0dff3ee39a306e79df0abcf2c337888577dd7481765218bad52e5879c5043967caaba0aac98f695d018b8e64079020ec3b1b8c491fd6be527859b7fcf54d5e69bb7b63223ff22e78c5c8e0e2408c0c12de4f4272eb8aceebf4503d0cc28167a7d2c066caeb4c05b7066d06d9f639dcefb0134ba307659651bdbb6d7acd3d423df133d6c6ee403574058bff485952fbe6b976f673404ba4f09393e4139306e79802581e40ee3fdb26bcb7cc2480801fb198b92085c0b89340be9b4175121df0c92dd0cc6fb1d5be82fd577bbea8db31285d426d7e13b72716932dcc2c2234c235b30c63369fbe7e5c3a1aede6bc1496301211b182201c1deb7c89f38e015117b462fc793782130d31e40d46c78551363d8b270dd3fae1805081d7f0b0da2079efc56d194900e862787e61cbb3adeb3bf0dd936bea745753b1bc5bc5f70a23655d1439602499f7caa8d2701634388d7fee650d029410007aef772cbb0be8f825a7dfa73b6565e5541aec7575e26390410d0fc569616a9b5c56542a174c38d7b0c6ad28401f550b033849c32207bd943d64b260ec17f884a68f0bb14b6acc869ce4035cae982049147bf253d76021e577de90b7598d4967617cff73ff2a9054a5d2b979589de47161d849c2f4016008a6fbea71a2e48493a91b3f576c86448e71dbba5d13ffa27ca911f7cb380d782b5ebe00736f5b0e5a225711c6c531fd998d3f22f97a5f2e67c468cc78e2c731b07076a869c0ea2d780bfa4aee1b0ac14285878a649710c9cbbf29c1ecd9fb26da176aa0c3998f204cbc53bb5a887ffaa3c05223bee70c3deb8bacae66ab22f4caa470acf15382ac93ef04123265c751745954d9b9419c47931b9da191d6617fc41f6e6c90a333b47decef8d3d9f45020ac1a3ab48ae0b8c7bcdbcaa181de3170b84b26435cf3f46ce7088e4c2fb2364d858f482ce82aa1c1cf21adef225d142287d4123a74611b72d5b999fceb4d8e9c0955493ee40f5b0dc9523c85891c38bb14cfa3095c6ef7cef3bfa4e088e8044bbf057d420964b1f8fb80a4c2cdbbf36fb2c5b29f26d9d0f2c1b21e8d085e6a2f8961f0d24012bfa4052c6f98819ebf94fbbb0a699aeff4570dd937aec659c70f9bd40dd676dbf3381fe770cb818b9db4cd9da8d0a28d85121256d51b43d4fa7b08b83f7e37ac876b38982e7191ea8297a1d0684e2e8f9f70dba042021165272472c2e4e16cc095a677dc8c0f08da6e00e8d4b94c93ecb6144734f58ec84ef9b50a1522c8034cac19da56f9b8059cb54e2d412cae77eec7894e7e33dff9b988f80d9043ad1db63d7e44c6d9af7f6655102c8f5094bf74fbc643d047c5f63bd0cda94257571159d63342f7b211f21bd5392a4d2ceb7e13fe8bcd9fff8a9723f208f8c0ff84931f54edad16407e7deaf57e2125ee5520adf5f54fad9c0b5b2e839bcdf104d51952619389de8388f4c9aef547192232cd8a85e976c3a67fcefbf7d676e0217f62ad58cd358f0d44056451a6f773d56e4c6482c296266a372cd98d828ec8b9c4eb0003000be2bdec2ec2080ab1f10cdc5ef6c661bf009f68c766dfce3cbd53970aeee1489a33b25d1e37c9720eacbe48f79cedc69c84d343fcca439c566afccde2e7c3cb76a42e318647c074887fa8fe69b48c84e5d0cf9aac4b3344eef128d47a28f7437b82921a3acfd0c7fc84c2fddd22354d82cb7dad26c46bb5a4c1dee06205df7d72ebafb831e0405415ab040592c273be8d4874f107776adeee969817bc88440065e3f888f3a851e2739e7f58bf5e1acbed40d5163ba4fd48538b1e6babb226a3c451353f2ff374881dac0800d981cf068cf41c8b22f209da7d76d6f1431dfb07a272fff3cd7083cea049da7e1b61128017fb4f8d9a5cd011ff072594ece3dd4a4d5ad679e7969c55760047f02c8d3b9fd11d10966684ba85c49f2858d793ace70f1b72e8d2241c0f94b7ce394a2f073f2fc5e875b9c25d7071c332ae48fad9f2ac08cd125c35f368bca9107ee94ca8983a260aba4aa5870a9cd19ccd9c6ae00bc0c31266c7f789656e0b9c728bc04233c8da4e35f1f4414b916c8ea77c7b7f199e5fd4fbb9ba480569c1c6030408c44c8e820e783cb73d7109d5ba2cbf80d3118c773f4c33ddfb634f5b5402babe2ccbd8a25da735020af8fa25646d3059f3f2950ff31acfcf38e3dce5eefef8788eadb7283a3d182f399ce077a30583f04612b013681cf58f3b543d182113ddfc1973d2baf44cb9326a45ec9458fa5478a1ebecf2c25f55107b1756ff0ac101ab7fd31e3b87cb57918048cb7af7e514f7805e00976bd8c1c934dd84ed72174c6ca74fe96382b07cf23df33101492971c169cd5fb7725ca8901448db6063dbc87997224b9b687b28bbcc863f48fbe0c34d8a2e2f19da932bb1553ad3560323bf38d04af0eb8a98d5315b7917b4edaf1cb8addbd860229183e5715572bd366417ad72dc1096c8b006e558335f97a61adcd4c8b869e703b7c510dc8e9d7853b23e08b07c18aa7938ebc76504abea94290c37504eacbac8bc2f786ed1a03185193408d8357e436ef213c4d94296a8050928bae5f223008956cf27a722bef9d8ef60617e255ee59e747ee80d540c5d402dd92f03020bc7fa2429bbf0d9d0e4860087f4a826e0d7dd847e05d12b65ef67691a9dc50ed40bd86346cd1fcbc8f94b1a13720ed96d392c045204666cf6f6536deb23194b24b9c3d922edbd065f34baf65910688518686a301261bacf88b055915a7306925467e0b795a86447c45292eb5c2485ba444639ba8b15d79e70a35b4a8c6b6d233006a42c96cea231d5562274e926cc9a5a9ec3ba6054e9a001f6381ba65e7c3d058021ee8d9f3c62397439be45f8a9d14ca40bcb2cc07f8f13da35449cc31536c0855f2e6dcacd85f81551a18b38a34fb6aa7830761c90d4a6268d8a86bfb1f41cd9794b1a7ffa7baef6669aaa4f4f425e9a3e61aec94c08fef1c8c408ec7634fc90e62799c1861d386aa5b998b27da95abd2eadc0b2d11d04579a7621bc809922bed3fb60265257a35a3ced925bec88d78a4e489d881c6aca03c63b090fa8de4c2d26b1e13f98f2f998413a650a82c3b7a13b4e74174cfcf8df1b7be966a67bc0363f9ac75e4351a166db185d2d99bdc8e0bc497709c51280017138b7c845ecfc6254059a615028fcccdcc53d66bc9def4af907b3125ebe4e58228bd1a3d74a862ddfcf6019219b6084ae238e727c3eacc062be1898b6ae183189170c3ea9ce9b59bbf06ac933bb5a1d2900bb58753c368e660d141733121dd62a1828aafc68885e26f754fcd5a66ed7bac33d8fd3bd1730ae3ededd7e5cfef85ac55ba3d3657307540d83840f720deabe383195e01d39c63e8ef3163ff7b5424d41b68d1c26b3b48dfa2152a04bf79953ec5f3bf65a8b63848c8a6b139d47eb350f5ae9303b8aef3543d024da814546cae2a7c8b21f14e44fb7aa0b37e4e3e56c7da3db6eb742cbea3c848c76062b9a24d755853f51ad0130bb004b1def08b072c3564e0f4cf57249d7c665676262f1f4e9232ad08755801733817a2d4d3b9cc06c810907fe3c9a7440329ff61aa1527cc95c32525513ebe53054ddb8c2b2faf90ea5f2fe4bbb213fda6fc0a190147bc1dddd35090fa6df856b55467114a06e606d77f2d7a498687287c79b4ab4a5cda5cc8821b61933d04cdece967c4dc6b0c4fe525a3d56b57786b0bc4ff9908f22b7c495d3049461a21cfb4e2b15003d8b3e71107266ba6abd84aa690601c4d5b9f1d83a6ebbb92e8e3e97a42b23702a49b0ec6dab49a7ec753d1f080b719405797feba3eeb59d12eb4bd657224792ec859047270509bf1d683c218fa95e05dc7ea7c503e90131861b8b26e81b922a6c1e13c2e95a40590403b4850939f5bde88c47cbe17abfae63a595811c5d04ad2e5238a787242b25825d243c0760c409d720cef85453155943bfe6d9b8e6ba47101926e97426c534882041a4ea23566a5935aa6d66e88e4cc4320e91c9026732690e41a50c275b1bc66d4d2788203c08ad30d604173a8f8e1aded2b242dd48b400344b2b7a13c4cc6afdf296029047bf5d1e2603a52939d4f3da8ddce42d4539d3654d4d4562dfed19d9cc828bc31b407822df22240d1f36cba1594b5270f59c2f0a7b28efe6ba841885d73a130857ae49c594b273eabd5a2d61acdec88da27addd58b4c0dfea7561dc4b8f7dba128f4d5efd7f5d9f22a1e76b2633b27d2cd1b502f34029b64bea0d55a73094159b09d803e3520240dd6d5803fb87900f07f8929fba29f21a9d69c436e8852af5e3f5f23cd35ddd4186aa670954c731578935ededb1c0008079fe2974a9b0a75ed2b3b807eb217d9238ec5a8c45d692d8172cca4837ca7a7acd8596a47cc611699b5ce31d906c1dc82d0e04864d5ad5839ce998463063ccaf7448e1e4f3f789a19087541a767636a10eecbe52d7a63f48ba1474ad5ef309019ae664eed7ba88bd554d0963012160e164fe8185fbab3132ba36a657c2497b77d6314c4882ef228d2c9c9daf8cccb70d5a1a680ccd28b0cc059f349b448e823297a3c459af2450ee6de7f98065d26de1ed2210e99f2c152b37205946f3807b3e13fb07555b6fb06e4fa49f58ba45dbaba1f439e64c1f799eb4c7bc4353436f8e4e923c4f4e38adfe674091a9e975118b107db76566c88d61d585f3adaff8f566c7b2e80df005948a3cfec1d1430ae87c7f557de53357ba873ed417b87a77c41c1fd611119560ce7135b85793c3f608164d2e7464316cfae692fc94dbc3a659e507e2d8277bbf5b2985dabd51973c33963da3678ed223f69766a7158ba91c8fe96e058beba64c28f18e05e33df96d2838d11f0cf19b87a90a06e5153773e69eb6225fc0e3d6dc677c66595fbf2d39539ce0701e1d47741c53503520983cf00e2594cf84c69f4943285715a3d53d554c92f7be70b9600d604e2c1ec7815dcd40b5c9c560495da09cc9be400c114fbdb74cd01cbd44797ada25af6e5ea5870773f26a2cfa64d870bf2650768437e2e57c7c87e65d8ec24372976027ee2db6bcf89a577f14c702ef2536ea730edd043ffe7931aec9793dfb0dd32136f50d7716a6d82d24f3377064ab2debea2c2c96b04346eac628f0fd22f9ca56ecc6f03d20b553ebdf2b73bbe624d91201beb6f20f9cce713a65e02c3c64ecdcbeb720c50d6134cdcc1fc2daddf692b4db5b5cf78014a90f87328e940ca7379203e171e6ed687c16be42460adfda807122bf717ee9cf96a6278a3d58c4b4f931ea9ef9ed9ae5e5bafb96e85c9490f53a6765fd0978a7d9c5acca81e3cc670f02f5a67b1db3b404fbd92632f2191ca54b99c548092d8e30f9cd944c14bc335ee4a41da34d1e41f917cac20cff54cc3329f810f554a26679dd93deed67e57fcf13df45e19db0648ffe6bbe31388332969dad0d4e6fb4d663368ddd0fe86329c4aeb22127f1062ea199a3370be3f6ec03de6a291b5a0e26e696cdf7dfc8c81a83b58688bba73a36016091443bae752830de639716c4f9840cdc9a34362ca227a9b376a7068bd618f21a36df5a7b5227b9c4fd5c9c623d1d8293eaf57e9e185c60171485902d894d063574b2f6e291e6a79bcbc07b8bc9350d204bebb55944fb91b7cece5918b7561dcfe386166df5ea9687f64639665cb04c5e3b68009d0b279d31f9122bd96d1e370d4c3d4e3aaacd88edd10708681ad8295ee6eacc42067bcda7f768c24115ddf9c90c92f8d80fb656a9b8fc6a76f7ba639d06c840ee2288d9b03d67893a7d77a700f91532ea802b65e4da555717ea499bdabf33aa1845519e64856e3bce060e84b7e92c9a6c6640612eaa2ab3df5ad6174d4102e6f5d783e1446ffae43e6ee8162602834b81004f724100211918e0ecc62f6bca6a26232113042a5a20cfbee282042a117fcd13fef42d68719dd8462929c49452d277e8eca1dc0236c6fdc263360b3f5fbf986ba45ba1262a2793f346037e74b29f09c5aed32faa101b34b2fd6a7acb2424dd7bbdc133a382f71473a924400c2dff36e388578d56c8bf78215c8265c41b069d34857f36a5ad2f7c292a8accacb0ff9e65351677c52c64de3752332d4ec04399b0f8fdeca4ff59f2d341598114b4448aaf4941a1329700c2c21512f2662d58446e12ce5aa0468d5fc90e1d77464c99f944dd03d35252dbecf5d1a39d8aef2dffb60f5093ff91091960292674a3c0743f8ea372a737d079fb64ae70ddc084674e535f461bf92bae1539c2e2a676e19720057a1fbdba4e8b069aaeceb8e7c238bd37b0a17c9ba7eb7d955db17d905b6e59d05b07a237fc46a1dcba5b0b1357e8bf092333e8da04623bc7bf19673fd9af19c88560526e536447daba0eb32d8ab06439cbf4479570d33a88eee5a70956a25d4f696d82ff16418e484495c5af144ce023e39c4296c6d88d373fcac57b3774365ad266357f1f689528753cde1ab44f0cf26521d00a79e090d6cc3cce494d4fb07e59b88e1d7b544244dc095f72cf59a233e7643aba6998e12438d7dfe0b5c4508b65f9e6edb0c893672391f4c0cf8bcb9d28a14459a5e03ebfe031a9a8db7a813bc14740c46d4aca2f7a8f08e2b99cd65d3e0f58524543b9ce4684444233347d60583fa04967e2460c2f94256d9b3732efc89e224c060ad83b163fc8689a90ba5522e58af72654c3c533b20d7888061af4b156ed963a86f0f684fe091d3cb69347582bbb6a4fe222f030ca0d9e2ce7434effa2c8fc5e19b75dd32e6343e82350666286de1490d314e2e6022d8be078547014fc99bba2f9898512184e63675d99afcae109d55360752e9d0f8f49578d4e7dc72317a91ff05920c6270d428fb9582b232627c5486e5830f574848f2bff82b3c6a54398e331fbc1150d35712f9a23f18a7b7022eb8e5895884a593b0811af8a651eb5c4746f41ef4f6fe15352d5769ba7c2d65e62ea621d2b8a1814835604066160bf77d76310133a7f9df5c12a4c2829e3003554d4b1f12e27f87fc25c7f56368691b770948d49d9fc3b1f2a5d4237190e4c7235ed810968b9d59d8ab4ad677093700cf6caae142dfaff6a5035b9f22604bf94b5e577fafeb110031523eb32f2fc855f5f7b954507141380d3076862b45ce4b54c15180aa7e23f57d7fb65691ee4cc8f07fe4f69fa3018438dc85e87b9851f063a6a1d6579cb51298ee744c81a98cbf5cc9792c54f9517aaca13d8a6ff719001568fc76b08aa959b84e7d8c83027646f67769915b45ba02741f2bb5eb6d228ad34c9bc39c35152238455390100c889bc60d5e39dd061b63d71577941de13c4c8e4ef5533a388adf20a11b8bcaeb3f703b888278d6296e234a51a5f0cf3f61976204764dab25ea9d0a628e27fb6097842687340c9c942f9cfe43840bd76e9f781b279a3ec077dfb00b98f364a011c8615453942cf07d624f4f1cba33ef7ed9bcab05d7fbf7331a559da617769726282c4f476fa4d5263c06bd67865c324df6dc4e7e47e763798f2b2ac33e3e34b7d81bbdaf5638d34feb43c2be725d19816601d35915400a91065d0c684af1e79b680a241c8f7d871f2551e71b8bc3d248161a079313005f80babc04cd382b81c87002b5eca358e1e35bb676a55da2785b910daf1f9fa42f550afa5d3d1d646bd4dc22223bd1cd8e25ff8fc41cddb6a5883cad6c038d5035d6bc68ce727831f4bcdcd8fb4e6f04b9c8de4ab6b6f09cdf4d367957533fca1f931dc4ad0a1c95ef3da801beb017066951f445915b1ff448e82d16ee7fc99cf2191a5e1f49a9869d8bf4ec4639757edd3a9304fd0735e99cd05d7e8372d941279b774974be9128e334be190d5c6c5a7822546c3c96c417bfde053aaeab2f4042dfb80e628b7e48557eec5fb209c6a80e5fc241e89b30a99a5beb8ca094fc5504d6a7dd20cf7861994e80528bc78aa1e978ae2637d8bf2c17df958b3e236ddcee641f11ad7bad6aa9b445647cb346ab7164ba74b7b51e51bd9aafb19d23b286476336492e0938328de6d87fd8288a7d74a6745a44e8d576911774546e04d87277407829245a37b0025c6214f53e5d8f23915d62898669c132813bb8b9b8040849e45619b7964f7c00fe130db0cf368355a0ad2e399fbc62437874852d61f11f76f346e5ef65cc62a4fe796784b744c4b85b8cb9cfd112b5965003d01a9ad9b54cfd02949371a8269d8f55a7546300d34d2d38e9399a1021c86331bd0bd3943532ef421d12dd74f23454635b76c57f8e3924e097eeb3488b1f35617991747c98e7b66ba7d8098bdcc4bbedd504c326b8dee3aec408a9e7583cd257cb36cd0eed7a1cd998531c2d7fb6c95ab35a72b435f3a4e9e3e34fbfe7f2b079c9d42139e8705c67c6de07f50bc4653aa4c2dcd1b2cc878c47174a73c161bf10dba79ab10ff7f02d9e76dad56c406daae9fe03858c535e51d8f5cf4536161c0289d2f84b84919c04acc2b5f8f155d49c2c772ab405b2fc0f2dd8b1f4fe231c136e4a72e53de913f2832fbe2c4ff3b846d17e4d757029422b2ca1c7ebd0fa2c4b3b2b7b720839ac9ca8cb2430efaddcd1b31ac03fee36d59c9d7e4011a11653af3de0dd161277d16346ea6e2929dddbc714d22373b29671b4b92b1cd95ebf3a52823ecf28d5ac2a09590df69d9039d2f41e01c90e5711d754504c95da3840b2d9a66c2d23bc49b71d84f6129e2a4f754557dcb783037b7cc32db9648bc0014651255985654361d7cdd0f6496781283a58feea4f03e0fb72b0d3c3c366ec82a867a01647fa8ee4c634c45eed0224230fdc133b3e0df2c191006ddb7d423685f28620edd6225b453a5b5b53108a0b4c39f7cadc9ac32ac025fd6bc712a6756ea9ef08c4731aa8510cc441f3a09052a08e8628683273318ae2af4668fdc5dfbe345d3df19ecbc3eb50bb119cef213b3e12c1a5ab05286653d16b8ca1574a5003a8dbedf16ae93a7c5a843873c7abafbdc3e72c0dc308a8f7e1f83056ff5c93e86f3e4710a41b39f2ad610b20d618237ab7e76da74d675157367e78a38c139916b704052efa307daf4d1b222e55341bf2bf533c117c1a00340a2681ade38aa5908957ebfddcc9193cbf312fbf3c9c75a83ee24896feed7b6c532391769802a0f1d10e2bbb73d6fcd1457b3167f1dcaca09d4e4c692e3ef1ce85306b42ba410e42d528c55bceb3fa15f5f06ee78685a74fc79f4bdea1c1c170d086708d2912ad98653cf4d53bbdf840fe6699130ef46cb607ae47a63ab5decf74598dbea36a925e009b51ebaa7174efaaa57d467a69363ff9b9d1be11128a877d966702772356f8eceb4160125f378a5b01c27e537e33ee37b3f43206c90bcc8b58d5c781a84462f9276d1ed21dd942beffed87f10e6ba700b19a4e84da9d2e6e8796566aabb8a71a73f1b37ddb0bc9e19f4724f5a9e97a7b6450469b60a5a4b03d197511b6def910054e82ba3bdf9412d812d1ae00f85531f5b55b55e95fe24aca0bfb37c0bad877a64469943f1a4d60e66327a2001400131256af58d1e90b05d5d29161e14b4f1ee7d48df6e5be2b7e5c0f7df1ecff939c3481cb69641351c74c3a0e4ba3689f1c0b37029a7229a85f8b3ea091de48e51914eb72bfcdd76b8ba01b7354390e870777469c8a497df0f9648f77a49bac0776045b5eb195d4c03bf4a781f4f156df17881958109f7827d89b9a3dd4405312715ab98029069fd33929e04ce6cae9ecf7459519e85c453a16f2bec66f7c63453b314f487962e889f9a0c1d3878f55d4fe2e9f6e45e5bfb54e90da6b41c6a5e5ce4026c3e39ec56008c7662a647514489f7b2fcd2228a096eb29243673c94f75cfe987c01d109a46c3da7510fb08245276f9dffdd50604a6f54f5d94c207945e3624141a793f7df43b866bcce582eeeca7f53febf5f6ee74c0d36f4a97dcd40d3e3e8e54999daf7235465419c71496dcb4ff771dc47a24f7fb563c57008a30521d9e925d692d56507e574b5f7dd381e5058f414970c10041f94bc1dc9ad374096b10e08ef2c2177383a9e5a67c87b592627760ca6f0c8d0d0e1224178055c88f72d8b34b6131e15d3c8ad6c0e5b085166c06d5f3f3da2488b870497d182341bce5f4706a509a7307305d82502a75e54e440fdc3404da6dd8058a242e505bc58169b937d33022e9a544d2370a2ef4605132c0d3ef8d7726daaa2d48f1b7effa8ca0397659010cf87b0ddab90a7325272566446a99c1c2cb1e5d0fd1a2a3ba87dceeae1f14496b8b2a482003cfd7b0aa985b78ca11a6d2f1487de3a0a7b46b081ba7c29c7c4acfbb38a1d715eea9c51018b0a609c9f6f67d76122266969c2b1adaba355bd8284e5d169afb5034349913b0ebfa753193ec5a08e9d0aef0c0516d0f330a0ec5fbad2a07f291a863cd9a865f3a726f8734791c5680139bd0b6e8352cb6e299db044dcc126b65e9093182e56ba1a3f3b0af64d014527b07d07e3bbd695eb0d57c1c3e108a6be76439839626815766a26b9d6c886597a8a922791b2c1532b6193cb00879b83f4716dc1b5a809d19ca6084cdf91a9fea2ab8377a97bcd4d10f1e01f501b44f94e346f70fc6c85c6bc5c059f92fdd0ceb9dc305d2f53c921e316ca96491908fc5325e80694a3ba9e2a08a0363f71374918d6a1c717f0eef1827e1861616c7b47a7abc781918bf831c4c7bcba4019ef240447ff3412413784b28935e93c74e2d9a7d334aaad73be47b717f11c97f4cb92071cc911411a6a33e80dc2d93fa771d380a78fcec0903c27e0118eb1cb9502bb67341edcab26b126997081f2544c210df19784d0fccd1e54283865b3426885ecb56b270b001548ae504d4d375fd2085fc6beb90632dc1086d7c849d14abc552c8dcfb905380dc51fa04dfff0392d4e95ce90252c3b5d73c9ee22de37cfc9d16c11a4d59e59595092bfd949eae1cb4f6d7ce9b3366ab2764dcb03452b2b1ec7f6b6565acafe9f425832c6bb867fe5f9e3e08ef299e8322fdec9226de42ac12bb48cd012efc0c99ff01b5d7b36bbb640016997eabbeb72dc4b68f707f569b904a30bd04c5aa9ac0e81caf15c0ca098bd0658f710dd35e29c6fe82600048b665a3904f1e85679a1378e35ade09829e963cd8997b28de0b54ff0f93df2b628fa792f9adb0b1f77b7fd041b97a8907b9d672e2deb1b0b0e94bdb9e01c18f48dca8352e856cb3c79bab94a2416e419351552c6d0553a02c47436ccfcfa83474469b6a65458ecb16deef3ce3cf7512bfcfc446a98243fbb53d422a07951fee6e547e842a6bb77b74159e03c7cf222fdb908098f771091091fc048c2dcab2b3ca90cd4b33d521f0471908c8b6709c79d53863681c64882252d3337878de8ef0446b29aaf479e7eccab4fc201e492d7cfc29616d65f0006d082cc5e8e9d23f8f43d562673555ed319f45022e69691b459ee987b8d5e98082fe6e38b39a10b1a7c5118b5373ee94f860eadf146097c33a922c3afb3f2865e2702ef9df65cde239b810bbcc4c89361e602dab48877c4bee22d1d11e189990132ecfe88d01831fc2b6b9177e30b7cd3a8dea7bef4961f90fd5d5fd7573f223eda169f7216d25495016e1a8dab68bf50b2808a7d7a632aacc3d2c9012bcb29681587edc06763e0a2cf8b8a64e698e8d3c45becb668271b0cc10887f14d26e432943607c497c13cdaf95a7fc9919c578495c38fda2fcb324d3659468043223fad1ebecadf6fb4a7e23f6a3a94680bc994ff0bb12f1642027f50a036231c074acd6ccdd2290228b85ecc8f15a262f5b1a7c243651b5fbb460aa3bc8f8c643d59254ce901b38a3e19128c906d2ecb8a65c59994157c45bcf3a95809018ad3551f41bb1be49722740e919ca32897348827f937de2eb772501f19e3fa67b4b4854616d808a7a2143c932171e0426c6a73e1c1a2b02d25dfb23934f6b04d34b2cbc61553594a8399a815867b5b3afbe3ae250a01e8b63ea0e6d339ac16c9281e9c0cfda7f08a9b94ae126739fb9409992baf0993d0b5fb44ca46a22aebff156e8c46b2fcea4aa7008e7335f26664e042f8a1f0c003b9f38f4d28ca38d94cabc91840377540113a6053b09e5ebaeee1488c24f11fb553e060c374071d29af01a77e8a9dd811ee911925fa2beffc8811fdd6ad33d7710101bfc24a5df05d9aa1716b4d6259258b60e9c479f5e3ca5bf8a837387f9f71dcc2d35ff30aba98e07d38e011a4877f1e4527767e3091ae665f897f7d1defdc13ffdbcfd2664d16941dc75d590c0432487f65c90591e0d088713a17e421ff67c15c70dc22bf1cc1f42fe89e4d2dfe4612e954f3391385044f0629ee2b2191d388498a4a3d4dc3f95633467bcb54152fe93267a515efe85fca3c0c00b0da6cb2436f633efc1b02c224180f24f10f421d64c4244fd9b3d67779d45fc2524e5b058ca6082a3f165d01289e3727afde77eb047d0218b5de8ded6b0651edd4886b503d1debda73887aaae4d6126d696830febc4ecf1e3bb99086471b568cdf79cdd55e1a5cdf89db4ba39d5211d36652b1ba4d50e8c3027f6418375a5d982502b860fc7cced682351469dabbdffe6156734b5c098fc7fa09b6cba09c8bc4784d177e1ab1e9410937822d038ad759222cb7c92bce77f84c826e392f32b5f2dc3670116335504ec3f526ad76fa9420dbd137301d7c70e24c6e571151a3c6d112b02d590cb8ae4cc44672549905e2df4d4d130267e34c4d774fde39e8c8318535a415ee6133349e7aed9e607df64ff2ced71b4ce960bba680c8f15736f499889fc5117e22263d3cec4d809676ae8b16afe15737a91dd4d2f44a4375fe19baeaba051ae6ac973b8c1933b539899ee9faac184731a13afb344a80673109c96d8297ceb1e6856c2d4c181fa7ffb00cf5aca0766e6b4e63d9ac2b45b3aa9990d56c8ed3830f79cddaaed078003ea84520f19260bbac325e2409ef5d6499985bae568b68fc3bb479538c3d0cbba61dd7aa07c81407a6543e1b2287cbd75bacf6fa7f75ff5f6297b9966d51d923576003a1f6d3b355138b92ba48ce94fd0cd0c707f12128900d26d4c3b58732cebb57a4514b7df1dcbee2440c27f5d60439106664ca3397174ee681b87425b4adfaed18b887f3dec5acf9b8e21bd426d99dbac054a90649c0e9a512c483e39994a3f510571db04dfcd796042dd3e44e6731e05dedce001bcff88cbce3edf8b569be8e5f5fa5952a38854946e31cf4d9e95f90091b931992e529312ffe2cf2665212e172c6b60d71cc89ed29901d88a0924d502f189a0a9a2f7d52fb6a097e9c0d7796088041e8c8035bfbb775c479aef5f498a7df954505ff48afc84f15e73189e21f2ce7848e786d8639a7c66d7938f3c82d5bbf15e9d6893adfc7d5347f359c3de992effc8beba4db647d5c04b0c9b69603f304d70310c4ecc463a9c488d82d73b9fb97c05e7be2fe3b6cc14a2c0b0f390da84e016e15bd4a07e4167900d3149ed82bb65437dd772534b7e74422fbc9a505c706354267a31d10b4278ee4bcd6365363aa572bcdf350a43031f9adcf92b23b5bc7531b864ceb3219af059227184c9d327ec0e2eb88dcd841b2cf424f5c05e83290111248ee06cd18db67c47f6549edf9cad4ba606568754da344aae36984a2900aea6e8bf736725745f4c67147474a4ff56c9fba7dacdeada60cecd9f267ff6ccd4ed5e4bed4c84f88df54eb7e699bb4696480686ef43c21af2f09ed4b8e4622646f8db32fe6a2171860f944dc08d5bf4d5b7727a6956bf0eacefd960d406e134a2bcdf267ffaad32bc5066f55a8c593243da51776c40cbe941ebbc7babd22b74909708edf602535fa3d96bba7910c6dc1e647ee0109838a568145da4ec47dd5be64a9859349973dbb577b00f5b42c937c31cacf3c9bf4103ce2f940733e44c19cc9b5788b8b1f0e49bb10f20441313c9e88d0ddc257fb2f46da9d1fed9c9504eb45d37d037bd3e4ff2e18e4941e773675f89ef0c1eda8161466c47ba443d71b216597bba1d7d6387d6168dbb4507b1119c02cfdf7c38f709f7d4c4eefceb1d2c73d7f6c9e164f3407dbf268202c5c42e5ad9e598d89469b0527da606804238bb01db3099d57c2a60ea26a3fea6d3656e6a113d95795a6f7ec87391b367ef4b8c06b0a5f220b5ac0ae7d5fc9b16e770f69fad2c1127c48cf1ccaef35eaa23bf812c539d49025e78297970c33348c3dc35360994340e3b838ab5d6f2ce61e15e3cd160c33b5c5879338b21f1d086b42659cfbde678c0b5507c1a805226b7f7fb601a6a40e7c0e16c3de7978709b2866294f572c47360c2841072276c071980fd97fd56b1ad272f15dc53bc4c4509690b64732913c5269b8270df38251ec5dfa0da15a57874e89fa4af9f07331f30a1a5e1f74031046f7a82ce4639e7a412ff5e85317864946e65d73e71f1f9df56578065df59e82a2ce88c25aa1127cecece0beb562f65e0d57af9369c87ce20af08be0ae87e0d3985a0966e971553367acda21c2efbbebd2dd276aab147a43833082b25fa123c04677ff8f3566b2b245e19468ed8e3d7776cfde306dec6be18520fe9764022d5c0b891b8fb7301d6665628fa099eca6b079f099e0322cdf9729bd5e8bf3710ccbb72eab0d8ca8244b035cf30afbe84bfdbbb3a76e7069b27f29ce4d37287279d6768ceec7f7b11500ddc0010b2000cb511bf085acb4b8e5aa151370203d5af4b1306e23628332de1f26e2695ac81143434a307d47c80b551682b922fb27d96384f0245dee19855457312a8cbddf78ac322531ed206383ab26b993363a233a07d7e20114271336ba89712e87480fb1f0281038926cd97fc57f3034362f21e11f5764fb6880508ba2f81df72203eb288e896b7320e67c8a71628039664d41e7c55206e9a97e7392fa3c880f3c7deb9a56ef1c2b3f05d82e2895ce3ef4c2bdf45692e75eb1ad63babf9c078754c8b9ff6e61546cfb75ec05dfe84570c56913f336cec4fa06f8e6f9b97d926e1ecf6af83a1b52eda177864edeffda16c3c0bee47cbdb618fb8a80a041a037882d53fe15360dbed8226182a08502e00ede2ab5ceccbe7cdfd6b0a27dd8fdf4dc808c4acdd55355e1e6b6cb4d9dfe8d430a9cad2d58e6d37f1a696a61ddba326f379f5c1422e8fffb668b277ca248f07728b85bc049aa61edd3f3190d72420ef5cd70da2602f5f09daa6eb9ebf18bea332bfaf71e1f7fe338ae7e0e55aae04606003dcaeb70cb814e3e31c44642e307c13f25647c28a9877a42b2195e8ace276369c8165b5587f86f41fb5ebba6a9505370a12f500f6d704eaa5281bf9cee487191f1bb3d38c95c5ddef8ea68630f6c32f8388907a9c293a9ae5b22a38f2713d6d90059bb79e94cc9735221fc1be68a30c688846cc565e5a5334a272322c3b1092a3149b77921fa2b96f33b7c60c913115e72806b0e333c7709a4003d3a3ef237d7dcf36aefc528ab5e14bf74391f65e66dbea046b97fbee93094020b1dd85ca51877dc829368d79615142153c2c676aa14cdaf11590ba31b2843f3c37340b0e5e8b029bd89663e2f714f653d5a08584be9c70f22e867b0652baa998c81f817979515d17f92c367fcc9ccb8839c354478e2dfed1274014e8c0b742d0e6841b4c963e4ba24098a5423ef97107486c845119f5dc3135fd19a9ce7c3f7dd5b4b6c79c7635b6e8a12b9c40cd6dac050d1956db34c98b96700f4f72f22c5515fddb38b76ef8722f9636c92de5d1a88ad1c0e486a6be3f6d9eef5161d1b19a57d6600b7183b36d1284303b34c939a63953ceb8d9e8d3b21f207cb91901c40c60f86c47217191c09cd889a12883ee1c08a98c8fc135dcb15fecb07916876d9eff148d9bd2160300c9471aa3b115e1a985179fd58acf0f9d7b60f51dd0a8611d1d6aea53c7490edcb0c8ff4326d3c60a294475f9d4881cc8ad737f296c64b65cf3a0aefab9db5877a9125c79265f59abd9d4953a1bde6645a3c0cae953624f270ff538f0487574f262e131bfbea552b118e486982d367e3a11504f7e2ad6d75d2d60e516c020e740db2ca8fe219c45cd5cf39f4368f93969080d32813e8bb39b6e216ead8107cc8d195255f3fe4b817e20faae34d66c2f4753e382b0bc0cc4fa3e139730b88ac97600d2f70f1f382f9611167f65b12d93e2fd8f27fb036226d13bd6bd0af144699adc0abf3147e30b12a4f9cd2034a9342389f6b3e47b8e4c74f84ff8d3321df9c8cbe31d79e1c5e7b99846ab6256235469db63d679149610a81646ab1b2f10604b1a338d540d68316f99f6e518663d1233960589549c88c60ebbe84125a97d25014f79722c6b51bcbf9f6005a183cd8cc23dd2d4d8777d1232c5f477e9cf5767e94b22654da69996a6ff058f84672d0fdd429fd4fea661f43dd4d57a2ae77fb282ed7898f3874b1a9633429ba18f905732be1a51fbcc36ff896c53656e2ca86529cde60ac5738606a9bd3e90845ff6f648b7cec675d497f09584e4aef53e5c039a8b3c17d4b2ac308c651d67cd2e4f77c4f26055050b92ad0c043fa71274e43ed50e2a89f444583f4eac06426a608fdec9d3b6d4e1e207da9e3037c5a77ac58e9518efbba86e53075e01f5ffa54bd5908a516009b0fdec211e7c51eb6ba45776acfb0b07af19795c3b7c8d3c0261171892fa1c34ae2e470f967d6e1cdc4beb8384c260309177df7de55fbf39983bfbaae0bdd02057cf774467e7b49c482514c3173f5d9fd9c0dac96dd4d0900d64092b87dcf34ee8085ddcb13520ecf64530872147860d997b34df3152f082e8343cbec1500c1829e7012e8b9be07ba56043c67841e422e97d08949aac0754515f5208598b5ab89cb84976db42ddc976723d2111bdb9c7896bd97a0481cb27a7b78381fb9e7776fcc091b2adf614133cec4489bcba66bb75b578afff1f584389f943bb35fbd251d5933e8e7af4db799e18e682f9683d842d78474f4be3b8c5b23575b95cb52fef3d53269345982438c611bb8c7b897e76b262e2207bd5f19ec96669d94968ca812d3ee35c7394e0c86cff2b9c4ed72bc5571dd39b70ccf48aa5dd11b0b143b244fa7c16141fb7f251139f42c484d5d8e722fef0e19f791f1363fa9ab3669891fb0b6471b9c1f86feda22dac5d359927462535e8ad787f65ee4f559000256d3d876da8b496ea59390cfbe8308880d0b924c0b79b8ccf59a05ec1fc1679e68c30de7c7a18744eb9854b43378fa1ed7036a4f0662f2724c23b4f1583375463480085b55713ce1b6bd8e0d76f3e0032f04e0b7f28bf748ea26d2b44b0f26bd8944a57ee5f78de3abb3e97d30326023838edebdc8c49db169736d55a009553a0eb659c82c59e431de948235022b5be294d7ce0d18599aa6aacc683444b7f46296cdd422a79f3f5337afaa9eb7551da34bf9e70228234fc3fe71e162073ce0af27ee899c219b5b56c9076e8d004bf257d9e08800af7c5f0b2065a06ac3c426e949a4019de3fd60107d13e6ee073d2b80cc6a8b75b4848ea1606d74a5a060dbbad696e6ffbf4bb3ac52e8048d330c8c043cc9c20368ecfd9338a0996e816a1bbc40299c047b620a20816fd7519a54de8f97d83becaea3615725ae10a83c568b2370eee275cb8edbd8efd838d142f7726c8ad18af5ea9d1dc32719936bc64b7c738b852c5ffcf08f54710d06bde302ecb435a9c3fd4bb84cbfed86353d7a3e8651df4dd0c56d9f862eabfc10e41a723d399f63f2c6bfd8619e76fe6fd1fed861abc421323624143ff68b6a4c0fb80c089fcd95672b39f6b6442c96ab2241b08b0a34f5cc430abf28b06d681eaca4c99ad4ce9d9377d566b60625efc98129e99e71347bfeb4eb3510a4d4a004484a850a00eca780ff7d22d5eb9d6c8416b62b9c81893ef5159944469ed98a035aa69a8dbb41f29db42034ca873cca4ce618335cf4c604589957dbcfcad9835823f63b74e76afe8a7eee59f09d0860076320f539220ff8ebd169a0c8b36d5295d99ca5b0ab1dcbf5ca841c0ce735b7141297339a9411df6749442b02832564a6c6893393ec44d092634f8f4e1e56df0f81b31553acfcf552f048e7818bf0a3131e8c14d8d920f0e2713f7f7da6f41dd7acc213722c538e3892e6421028568af6b91cbad26aea013c228490dddc2420977aea7910d8b810197d33d2c15f2620fcce399cf4f556514813a394939730271de954987c17c2e5f499b9a3dd89e34f09743626ff2ade42a269498bc87bdebfac51e1f60bf62c74faded22821960ee4cfb80c111d1ca78c7b990d17f3dac2a5e9b67c77b253a675c0a9fa225043cfa632c7f41daed29d04102280ef4245519f03919911ad719e06a3af75bc99e4324dbac349466d0b90e4e591098923667222d3be7386a2a143d0be82d864235462e57e2f632e2cf406f9cb3f630690b0d8db207f91868466fffe6b95d637b880aec94eb234db7bada87841ce25f62ee19880114e05a498f46278d7a413b1745fd2732e645bb426309773cb375ae31dd3708c5ae240ad6f90cdb98bafe49e83ed540dbf7753782028c294443bcb50ecf013642e6c248dd2ee1fa73cd3c8a59c6b2ad93a02ecc3281bba2ed4477e09cd1a0c65e4fd7f27a801af54057a5f46c19d293a725764615b82dab4a85240d0cc0bb19b134941388811783e397a1e33539c0cd7c0cfd6064968ba8f96a91475f86f510b6fe21c4cf34cb2935a9e48e86abafe7bea7a986901f917c9aa88ea59ede1a860fcb48b94b41b37917eed5b646164a7b29308490aa12c67c782e6b5ad72a39fdc337425143ff3e9dd187e25feb107274a020a95a6950182ee47aa34e5d93d32d59a01271c6558809d5965f0ab3c4f1ed6abf9603b8ddc0b073be6d58513c94ee24cf27271d23cac64b781ff278ff7b9579a9e0489d364e9a420561fc45b9c4a23ba3997f5c9156d8351888e946acdf68fb364110ac2d93fe01e921ad7c10dc51325e3b9448ee1e2a60b85f4dd1e78a94283cea2866131218a66ead1fb1ce172a56d352253f25ac7d3cef7b1dbeb5da3a9c1cc83becb167200f09444ac24bd8e7d64214d1865516bb64a1f8abb1fc0bd27600742e979fbbc0f8c2891b121c87623e79bde4e6f57fd12497d55823f0a6e4f63ee2897fe4bfe2cd9c84055d0b41bbd9dd1935b9daa00984dd9a95286e7850e1ec13c8ae324ab348de11fe865fc7444545b6fa62e0db1a9bd60f60b35466dc7a8c995c714d4d4fc70b643770e36bd2be344b6ae7cb038d1d996c201347c17d7139c7edf03115fac460e222410cfd237baaa313ba725987033a51a9592c78e5489841814ed27aa71fbb8ea7ed085368860b29fbe3558ceacab300fc8423dacb9ec61f0f9cd1e77fadcf342c3dd61354fc64d6569bcc13464ecfa84b70e405705e4fb057f590e8eb8241ebbea8542c4667c26cb582e94aa50e649f256b75c37cc0d7a30e52f3c72e7b825515582706a59bc3af03b9dd141f192cce8dd75a50851a1b2527fb2c0edef4054d6e4363311414798437af79fe55143db6ae9db16b3f67e20cc416eb43d40f04be92b02d19fe3883d08627d475bf8ce837f3c4257570f153c17cfd11fa9260fd3b6cb5d6e8688323096c658dcb37fab653e5e16d12336dbf1209a13493b34828acf75eee68cdf6797d3c222b7f95091059c844881155ba28d329769447edca797a4cccabdb450cb5cee801c2cf2559f5362c1fc92ca3856d1fba4cbaa228a7a26403c53695225f12bfa267b410ab18f74ed7fbdc31e286543b3438ef1178abdfb60c4c32b00384bab50d4b54a21e613bc4df62a7b91b791f282a75ca6ffddd0107511e7cbf1f96a89657593e1aecbd233a35fd467b228e8ea4ce437fa6c95ba2fda4ca3c688ab3bc2f0d1f75c5533450380ce44910f015d7ea85a175b73702df16a28e46eb61312ea18b4e20fa1c0593d0d59f5e41b757df2c5c9008cda2c6d5fe1231e8c460b1b38cfbeb9f9652220bf403771b052792b663d338ac52db7cbd2e85b394bc5ab18cfbbcfc4e67564019296af2ddc7fa58b6e779cca2c7bf0ac63713649e74ee3e76a0abcb49cb7a60d5e948cfbde440494813493b8ed73f9d27de64cdf130d2cec969bee74f5da9d051d8b06b9f9ffbe9e88310e39870ca18b00e514fb282fb3183ffbfffaf315d38c962132614a7013ef3f7942d8876753573c5e93c6496c131502aab0b9cb61208d4b756568c7008ca6852a8b8a6afd269f6ae477041f2ee6e5f29bfd0d22cd6f7899049a41445e4ca2e7484ea2fee8e8d2a31775170f8c0f4227f3c560972c8349c707c5a321b163f23e19d725c3a29e287bec5daa8f0d7eece5fddac6cd3d402b1daa70f12c766c527f196585d2a9248b751011f81a9c0aeb68e36ea4970135c039bb05b5bb895d62c663c7d58e9b70728f32eb1fdf7c9c49d94cf6c539e6224729b7a6bbcc95d79eb16fba1f30f3bff2713269b3673112cc74364694f46005780030f5964b34e8ee0404dd09eaeed248ecadb7b2fb95a00b18d25605f4ae121216fb1bf82c73ce7448d3d3d412201d37c8182d28a1647f40b320f177430b00befb634a116e10029f17223ce00275ee7b92b2ad6972d7f1667a5ddf91470de65c4530bed0e097430ff8bd2b704c99ae41dc7827b133e0c20ed55dc816172e0746c2811fd335ba8a5ef2153cb8dfa24795776b367d5be5cfa0e3faf0c0ba439e66111470b4dc023af9e64ac88a9b7393542903067c717892b5216ae6a58ffc423376f7989d6ed83b8becc2df9df099df5b492de6994cd52d7f8365fb01d9b6768cc450dbf33ed2275e7ebb92a3ffd6c1cbbc7eee372bf31812a8036c3a0b6034531a3126ebbb478c2b19569490c973fbb2904834d9f5514e814d4fc8639424e6225f8acaa79a6c20fe5ef50d5f91a9ae9be4e7f77ccdfb532accd01f8de909794f8b9f79754dcaccc51d0d7749dc40c2db5a2cbd02f7726db9ce208f8957b33621f8ca321702e534cfc5cef5107fdf49584f2ad3c4defc7a15cd8e8c6884532eab05cb7db67ea4e85a6e7d4c4f1c30ea1a99888e85cd266cf724c53e5474be8cee6ab7076d7a465d0cc493cfa4974ce125cf00c768e48135fe7df89bebf2f75a634b6a42c7caeb1758112aa21c1f514e2575b2858b7b872b5e2153465f3f23b62eb405c1c1d11ed63bce312120bd667038c689e3105855a1932e9702440dd66aa28a207a420b182818c1ae9ebfd24dc17d1f824c0aecd7c27bb45872194ae4da89371e85e5a121e7359793c130587e7a7a772cdcc612e5a9c09757dc4150ee568eb6bfc0a90c93c82f78abbc1b482d75221705a0e27701c791b0f8612b66e7ddf3a84dd0c5989b2bcde75b172dd171258757d9d04e68893be01e82b2de456922935588f4363d90310137ff06011c737c6fcc66dc0acaaaa979cb2f9671976cb70bf843cfde8e5341f7b4089397a0a257b7e3088098931fa10d97ffb9c02cd928055e76b59215fb8f6378b6e14777cede661b4d5aaa82148d33897ffd83521cfbea59b0863dba13acf4ff0e6fd5642fee1882f4a396524448814744e95eb0d3ce840007c1b6ba676e6633541c1372d51575219270ab3428e53a31b47262ceffbeb5554af8c3e3b80577529ac26440b3ea0ccab84d3fa1814a1f3165cb4a8408453ab819174d8c00bbeaf26eb8291bb847e5b735898d4dceab706d8e4b27165e8c882bc036f4b9758810c28e6b704d4c91684ab70b186c8d231658fa3bfff1e245893b8ae51fb52a5b14b15bc63e5d39afe7c982c08c15c0d89c7eceff523be21a0afb7fc91eb84b3c016f39ecd03dd2947f4823e7a1a0c10e40772c96d8268b4a4a2153333d4653a9fd8d9d700d90f543d1d6d61b4abd786f782d5c64a666380b2550edf2207ccb426f31379dc500f59b4454db7b5ccff124418a99a14e5fbec3b197a419f639f7206cd1345fa219ef835808e7eeaa55df1224cde78b9366698b176a4d0d288168f3f3faaeddcbdbc833465e83bb03954f00fd1bf364710db1f914c49d54dbb1c1329924bd3cc65452a59de232cc8380dbb5b9acd1ec99566a7d371d94793a43756efeef9023e74ba105b8d03dbcca4b87c595914bf8555ef4dcba1d41895d3134ae07ba5f2cae3e97aedd894fa2ea43d941b3e2a12cdb99db8e6efb0d528c437978bc64347851d3eadea63e982de4701cb2ba2f44d20a684ad1678f8e8819bf49a2553394be0f98802424cada83962244de70045a346d942b607ad6802c954ad06de76633f00f56fe7204ec5f687bbec397963437692da4bacf3ae17529979319421c2a358778478d09f5e333b81a455c3097cf34097aa5904986d7ce3bd4eed7e6b3d07cb302dd1c79106352d686eb43482a55a2f2d72d5fd2d70b163e837910325a634a2971d18aa44e178dc0f8b2b1886ee64749e7d1dee989779ddb24d068eb0130c142275d698bcbdf9196141cdace2f7b23f48d0982d163ab17b88adf29e59880022fda028027e4d63b4b77a51ed822ec08caff653648806f1b5604cd91ca0b81229ea20ff84666be5098806619ff70ecaaf1dc5b4559e7eb98a995c27a873b2be13fa06356e1f94f773d3d4ef93db70b18807e137072075979bc909d7144a3e602f5d416bb21d890e23418d842a44144c2193c0324c50f109d9562b26f53540f5dca3b51ac0ff20acc528571c408eb2316818c4d8a0000b345076850dc93d993b07950044748816c345958922933846728c8c0d45e2bfc7e32a9760293f6066907ef5d5ee55509a7cc6684f61ad33df4c5fff3e16f5ec43a313976761718fb5f2f03d9d91c32fb46adede4f8f759623ad6159bfc82be87e63dae6bb2b3598208d97be96a0039378b892246543f3398279785c04ea11db3aed721ff8389593087c0f7e4d52edf9f28d4e12a9b6b52ea2a06712130efad61342a7310fa74de9806aefa01e82135bcc002f99cbea28d59389a990d94a1c4f11ecdceb1d840fbeb48de11ff20ab1fd7cfa06420576873baeba4a5d37dcc33f06f9831f410a02cdc3242c537ec9e379c761a09454a3b76a44ef0ce7c2602f4c0cdd22005796255ade3076c66892fa8393976b5d20b00001a8ec2756d8edb79e27ded628f684cb11585f7bc8ce9062af7b023607d01ba1eea7066b986c44b7bb00907b60d322d4670575219b21973251dfffecdc363394af185579cbef18a150041d68183b12b1afba838c95e18ddc438c5fed272a652c4eb5ae11bdacff65667e7d1e141dfa50da1eb1eeb5b98a4c82fc5866f0386f8c9fac0e72a16a1766ecb264ff576a2010b553ea1aa439873bf2622f1dbbf9f3dd1a9c92b1ef669f51518fc8b43039ecf375e2ec2cb5b731bff9b501b0398c6c29b7f78c4693657710bd2165bd65070be1d12659b175747d29586c965aaa113e8dac7860e6e8de057f023117889e845ce7c505ccd36d4d913c365948e5332eb7950a14bcb9526c9111311d7e82fe5b71b7f11a3dbadafc10a65c92f7752b4113f98952b02aee7e0bccc2d216d467d77e436651537fb116c3334c2c7ab22042b94f375151a732a8d3b923fb4dc470d3287e58364440cd3403268c9f6fd797a7c5f3bd6c45750e876e3017a6397d1bf0e64f9aa39a4331cd8122f1198df172fb0f57b8ff6c8ae46a616e3407496acd2473de289ee88b79cf53133b44dd5a965a39475dbc33d8edf617e1bc5b8fb1ab844a20017bde02159469e266db189b02528b7748381aef4e961576676fafd2616721504f31898e6195f0895033871f65df239aa98afcdb8aa868d55790ec4d5a4abfc459a5222d4d3cc6cff574bb69f7454789ce764255ef1e3a65d09aab907a21eff1dead0c153a4da620d0f865409e710f52c6efc13c83dc1638ba029d6c12ae16977803226a009407490db3296a3d15be5e84f34b98a23f2fab96144259b88cd540649c62395611fc4f3260daad5d571e5f16cda0e2b9ae6ed85f05cced79fae1cb6bbb93d86c13814adad7e94b7b8e3c986a7b225e8c6475b3cf3a726204a2b2203d1bc097c75db46a3e65190520bae6eda1d4fc43a4165685959c941150afe2151ef102809f0decb1336c3299a0983d205adf45a89d02e8307fbb814e630df6d03d9c5dc73dfcb25a8157a860edfb71aca66a5a185c354da46ffd78c73700bb164da9c05471ef429b58c890c434b3ae1d2f59ade785b884b4d8a8421aea50d905bf13f0b7842e45a883014996a58ffad11ad549b22e709db433f9237ccf0684c09bd8eec4c53fe33759cee2e54b265cc42c17ffbc8253d29aee4d0fc9973558e53baa4cc70ad7ab9d31a93e38e621e6d634a2bbb349f9ebcf99223be45f3bb3632aa2522e443f89434f423c5306ee1024678b7388159b0ed0c3a46d85ca5777c3e25e4f47b31b7aed35f4865426f160fb4bc681d755b6d0f98b406d235791b13c26090cb58be9867d774a3c483ec4d8a88b39afdf6f4e545b0faeb0f1ade601737794a0b2c080c2f6948bb25d0276c61630cef8b48db56211f98f316ecdd200671385e144879cb9ea917a55903d4eea36d97c681664c044a8befd3355b44bb065ba05c2d98ca882416af2f5e8f844b39b9d3e2e9aa40f7d0796ee9d08732bfba817760c7b47f0e3f2fc60d653ae667316b5d8be0cd83fc732f8a45fde64cbff9561ed384a4890dd7290338d176abbab7d80201f1c057c9dc263f4edc47f090b33ac5b6b1a38f38466f10b9ea79768ccd5db18cf20b9d640afcf080e91e50e1c661409e8f2c2d9b8e49901ce848f65227f51b042ce416b136867be279c59ceed96cbeb4a0ca059f1287d3adeafcd22f5ab5ef639e089f5dca0fab9b137db01eda1aee962090b1def64c38a235a7aec468461f9ddc86b470b6ccce870abff42e4265b43bd93ebde8aa4c85b5b2519e44234493a4e5795ba9fd2527d590ef43ac6dc983cf856a3af673937d27231393c177c784fd1e81418e4d98f6d13cc999cebc817d367168ee62f5e7d54c3cbdb0172c426135821e832d3cdc74c237d80fe0aca406d42ab2054e7050305876d2b945a53f4abc6e0542850a3ff0f1cb8aef929ee18925b809982f840b99d6ca965e2567b6a75bbc0a4e5743c9795552599578e5f26f1837c40c1cbc4c14a4d3a019da9f4775413d2466c2d8ad03bbf7bf12b446fb6247e284a58a6d6e149803ce113c48e3239aa82e31f66cd6045461b4ec744e41c369c87117c47b023c483d19c2238dea713271cf17cf62e651a82f7954833549ee88c3cf670b35e2b712c34509c8198bdef3381b2611c82eb38accd0d78182917b50f62d7e729537f3d644496b96f854304e385bd90bcb03fa9dc9e94a7b5207417b8bdef01bd1ad4791c3a44f6b88830dfe707e670a8947c4b064aec59105c9728bb5f83fe44b042f40e75763e6a2cdc8508fbee4f6ebe65afcc8e62608b0571c3f95e7e74d0177d8d7516155317eb0812d9bcc3bd021b2ec5732e37edbbaad888295c74411f814d0d53e02e6b5829fa0a38edd7e50e98cee3bb5b025d835c4663414d20df3e1c5ec7ac6c29607b9deceeca33aa6cd4f4c45432c6421725379aae63e3a573fddccec2d54ed93002f4bf20fb7f638e9d13fc8ca0e775e5119d4eff6e1540e3fb7c1469e748a913daa9ce12cfc301ccc922fcf72b78c0da44709114d14afc8f680d7c47ff476546ebedd6ee9ef799dd3b4e52fe1d5a15ed4db1dab30f6f995756c882d56ae092382e7b44f5296f6acb16c10f1b6ec390755d72d65ab4bfa6686f98b5e8add7ad81080b25fc6c6293606dc60a1b3d5c3d1a6b85b8b9b294f7f9323a3913b453815db761843d513c9652ba634035ab7d509b8c84f971e2700c1800f01dbcad2c3db8cf0ba433f142a10e2a40b8b2f6d22474125de42ba54c198c0783ce3758d1ba816de8b711b2dbd96ba1e8486f8492a085c6d34f514e845579ba8d875f6f777eedde1c71d5c2dc85b9b9b2fba7a8a583ba42554b763c288db9de91288e802f395ba78cf94299c29a94367365521bc15ad4a28b95be2368943c16789868780039b48cf11de2bf9e2c919a4727368159de842ec09b417a063ea7296c31cca0eac9b34e001a1812d0a17a5e212a97a2394d9cf5ac0e06811b59de275bd38548d963809c70059fac978ce26eeb14548f6ec1048361829008c53ae04f2857d5e2d600a6571c0240766da71425d4e3a2fc93bb782c0e2ed8b6a92bb19d33c5aeb97a349ac0a5271fd91b81dea69c2f4a3e944b916738c31f8b3fda7d8ea6006d518937707218a23997992c228d0f8dc0ae4bc8e36f342a98cdb45b14b7529d5614435388d482d55e3d21156bfb6b1e2beffac8c935a8d8face8d657d3c71e05bceb3f06785be9f34318797bec86338e7271d435c8dc4afc0f24275243c018960ee5dc02d75616d3319b4d180ce739b7e8382aaee29cfc72a08041a09c6fb37e85318e8c7d63bda27ebd73bfb322ba974520bce23e4fef510dc173d17633f88634c283f4f8c90623c92a15d732d87a70c971fad126443b68a583483ff15d2641b0acc74729050382afc004376402c8c2026844041de642356911522ee9365bdbfeca6d97398819f5ecc51e4d2718530fa43a46b5f16b86f0a92f10128f6c3cee1cc2ab6411e247facc39724f3137d49b7681e0e6ead72a84acb821db44bab51daae2a6e0274daa7178a6685e9c4e04d53fbafb1e23f66f99abdb59df07706c2e45a736f7bc108474cdd244c71aca67a600bc686f4645c803cad5f31e4b7414d0dbc2881dbc5180a6b8582fdf06edef8325f3a96ebdb8cb13497618d84a90f7dacb75be87f9a566e0beef10de4df5cf7f4318d156809cb6d69093cb36d6541d56d481bb8fa99a2b2e41235cb3cf5a93d4b29007287e083b5e97bce86912aa95a3b76cb240ca975354a08d3b85d4aa7fcc5281bc2f2b6b48795636e91876e3fa99e27a7cf66c75bb644eb1b23088e4d0afbd7b221f0a299d19a2fa7e288fae4035adee11fa8f4204249036f7771647f56980bbc303c8230426eb59084990c7783f964a95491ac0242dc73297fc81f6f6580ec9b3514e148f37d26580e56272247b9f6f62b3a26d097ef0f2b7c7250d9d19930e2eb120c98f3b17a8e328cec3070261f827d790aecbc92f50b5a5e1dc298ea39bd474278bf4ba933cfcad265ffefe98e4acfbc3ada87de6d59a6850aa6dde6cf934022de7ca9bdac6a55eff86e927e9320758dc5922a594b30d93fae9ed339f902ee4913057abe3b302c3e2b4afa498c30c1142cbc452aa013b6397a862bc1788473516c68a5fba20e5b4855af1d35912f12b24a37d5fe748f91552dd86de40ac8e4cb287da29eab52a8a976330e1f56359d9ebb208b7f423f329cd6ea49d30a004570b4144d7a539ff6ff85de89e4f6fda50c94a9b4dedde3ff18ea29d647544134ac18b0280edf0ea1f6693693b4eb6ee2dced88c1c72f094416e78e535da8e339a632af588f6af4200ed710416bf28de88c01a1722e4d5420a1fcda5d0f28cf8e0b24eb1a30801a1969f63dfc418485fb5d67860bf9658f969a2ad4b54f080842c1b8c1a45756a5d219020a5a139aac56b7488d248827ac721d5d492fe3cabd338e407a27bf70cf374845210d971090d962aaf5999fb095bd9b265319f97e723a9472c9dfe327dc12720d224d621c77e045b9a68456fcd7110a3eb9b61296c3d2e9f7fe6037163e2e02600d0e30c859064c2fb43fa7a891c3912c8d74330a29d049c99521e7f02446fef3ce910fdb6d16b327b10caf09ae060afa5f967278d30e4146c54a98fd7110de5b6f1b88857a72147f7b2bdb0b985fc836e08f739ac48c6272631c2f713e13875fe2e5057ccc84f1341e10a376d093c0d6d6e4664caa338fb18d560039f7e7e41314f12177a9309020511abf03e9f183fd0ad84b40861c1d622adfc4f832d880415ed4e3d794f9254876e13e68b199e099abd993be1e7f30b48ab2a903823abfa729e4216a0615d9b51354cf8b2e0f6f0c1a6be8b71bbeb19224fea04127b9e989902590d574ef6771ce3bc985ee249c4d96be86043e7a666596ac14108a14b72be616838a4e670fe8fcc9ebe2a9d7cf1ddca60841ae40c465fd968b896b5ad66179ce9d81ce4138eb79eca2a6e94689af424a92b6ab5ccd6f78733daabb12335d57fdda8f7a2713972a1c58246e1bd13c8dbcbf43b550366e917cbd5dcdedeb9015506c8385ab41f20ce71b72ffa8b632b0a4963f00c69ff22d7ddb33231e8bde87accb4445db759167da341d00494f9f6b374d5b48941e74a28db8a60b54a8df1af577fc546646fca68b6f63aac69dd2ea712ae85356a2977e019f152f9088123dec9c8d8c373976eeb7cbb815bf99dbc6c1e6b526028b3dc4fd48a063208402064e26dac69d1645337179ac050c65c081031bc1a4996e3db2cd3686d86161140ff7c32a472a6c1e6c4c5ca7ffac5fb66a0905e6d3ce0bf6c2577bf4983552917617f0208ce31c9243599cb7cf256b4c25ad5d81d61da20321ca3a3060f17f3ea27d3359f26c32c28d8c58500653184d3de150867ac479c3df162dcb5ec51ef0fc7b1930304d0d6423ced26be479e83b737e29a6629761f40b8fc9aed5c57eee97997244c8cd0458104534f83c8542a97a0bc42bddf88513688a8e88e2314c1fa649f977c58f6a69a3a05bdc8d6661a7190eca1e26310a77239380310d96d55ac715ed51cf472ce5c4c085c3f2746daf4a0804ac20df8e3556c6efddbf9ec5c07c3a3aca84be81270f7231c632f753462adea826951d4f03ed98a8d20f7ea528ba803edc61929df452f5d0f46a43936a8bbba987124991a2211a62d6ca1b76e5985dbfbdc72a8adaddf80f2fd2b63c7c9a7c73e87b253bb5e85371a6a6007201c0a3d279ec5dac1b24f74ceaf8ae2be13cc7e212063edeabe36cdb071986823181efba3481bcd8d4d0585058e564039d1c924f7474418b43d83462ce55ff775fe3c03cefd87c78c25d245e337a2c61614af92c4196ee322b5bbebccbe1bb9effb7bf9729a7d58673311a9c0c82e38701ca5b16d156c02ca921f463bdd265b917073ddddd6be499a78de181b623037d73ddfcb694110fdcdbedf9a4b69eedba477b9d393c23c1630142e1923ae7f694f4051195bb2ab8a9fb60ff0ee7a4dc9f374062777247a1dcf9522529d0e34a1f350321b4bba0922d4f6df52827e3075f5ebc298cf2c65d1aba3d8a96fbc50ccec9cfebd11b61a6aa0cd0a7a603f888c55f6dd448ab22bb8d1221529c4c57d3f081508e286b2ef943688b4c58b0d8343a2570d99f4ba6091ed76543c7d7e14a5ba70373fc1763f6d448884aab183b4c455331cb2b46604ea394f4a10bfbb2dec54f8c4eb684aeff8296c349cb69195bd43aa530c872b842484352120ee4d0f80d95aa582f65ca94ac84989bd37994c2364483f3b89e1e5703d97dcdfd721be9c13b8db3f90192ca5b7842348dc9b1ef109ca44b51d71fb9ead29efd904a04f23d69a643adc71c1896f544c243374ee4f614de55fdd67d2edf72c6669a3a570c645739d2494f23aec25a9babec0ecea6cd6a85674b588e2557ff31544e36a769cc2f54a031c09f5632668859ba206d9566c0a40192fda5a462aea30038b5ae958c4dc512e419f2e948c1ec3d1b0d2e203fb3fc03f892e8550ea56261c6dd0747a071909ec710e1fe1206fc60146152b25a10f56a4d6b4e11e6db9ddb05f5ac082adc9f83fab65838a202a3493522c743bbd25a012b4d03fa767b67edbad41ebda7f924b7da75e71ac9eb0e63e9c2410b704904cf027de67e295506a674c499bb128ec8bbe87a1a97ed7d2238fdbe570cc415a9cb962f68617b01dea4f9f7e1704be6ddf63bd8bc89a606c86ed9bcf74ae0ba703c75a207e304dc6f207aa3aa2f935673fb3efa92d4c8ba2745d4ede4a3342a53a04d4d142fa24fc7994e26b0f375fc8a835334b6029d284fd7ec2304261f1ade41c51f03e330892e8cf79cf88e143bf1450638e681ae6b9b37785a4c3ef0f32a550dbe83f1a939f40840bfe4493ca896e2c2a603cd7b350a78b586d8ea9ece36644be42468b684c0d7e172529a8b974dd830618cd44df1f08ac68822ab4d9e20e6b56cd1257c916b3f80326aef1c97d45fc1320119638afb6dbb8e64b46bcfd7df037a8b08d110ab394041a2cbf8888cf4e33e655c2a9acb78535c729b65351ab3a7185b985edee93595c36e9b81574977cd68d3e534a61fa7573d6c88e7cafc15d863c3756256c4591f29696c50df9ea3db274d66f74d36e75afb9d47810852580e90f8f9aa8257d1ca27ac648d95c743c42163b9ad180a6957db3afe260e477fc45f327980061b88ab9a57216951871cc45f29e7c1234ef2121839cde0af7b0b9c7f0e0358c7bb404ddf2c3b4f0cf3aead9f461ac46b29f01ad53fdffef53a08a884224fbcd3e93898059871e3c73dccd8b8736b48557ab72de46f49350825981fd28977c7a9e8894e5912e0d64a45ca764267b10c7da753fa7080cd60c2361fbca0facbe16041d6060673e3f141a74bb412f0f4a203467382711182259d13887d4c6cd0547cdb475f34af3838dac97cf9fd1403fbd218d5ac1ead0195067783648ad361c4a90652f135c7d2e37d028a2d1b25eeb40854f98352d53319ffa9c37938bb2082ebc131943708ac599a5afd4be56806207cdd2ecb1868fb9b2b1842107b5e66297522343760ba857cb078842d52d511bffff5964da30364c01d26487000e6a790ee98811b9b86e2ca1a7d32675beb335fd933d631efbf52bc025b3d8946721d5c587724af92e1045ee2aa5030771f1447845087a137b34d02cb0730dcc4b12711042811f7088f8bc25eeabf7d507595ae519ae1a5605720fc020eb39ac07f819c63b9ae55ecce073ce5ffc8cc7e59c195f0c30114a72b1fe96a29ce96f33455584aaa882a0d4502a19cb17d163cfcc4500ec42dcea9f2d19b826eac32e02aad1e178726be187f60c3dfb862b1986ab14f59713ff21a311b99f13ed1c080419a59c0173120d1771c7fd5c41ff637c47fecc35e17e2db7a2673cd570c1e3afd36c825033a623e3ba03867aad0973f70c01549023fc17c9a47fc37d2fa434182f4a70b116b3b26d081ffaa8e98b9e26cc36cfcebfc22ce6fa3143fee50bc2d7b56602ad163b1999c64295c0cf136367790935728d4b760db8aa2714e64da567b8bfe2ac191de36afc8dd7f43f87ef4556dab5f2ce7dd7f658d8778f78682f204db618eacaccd03e5195ff44089fd8d2a3ff66ac57547e8f0fbba55fc5b42dde7dd0ca208b59398b61d5223f280737a55e9c6e7fcd40976ec5ea00253d3bd90405af876cc0ba7faaf0c9390fd18ae2b32ab3a3baf71f4e32326c3fd2a684dd36c154f6dec5687bf1c207141e2a58574c2727f5aa807675080587cad16370a952329140f2ba7e18fcd508342da2af1fd2773e03e81afc271e8d0912b857cf6e8e277ea214a8dd2d9b8231acafae4fc689b2794f421b0859b5915cc3c88ac692a6b0c83a8a0ff57c088dd37502de5159258b897465f1348bcea5dc43cc9c7d9c2996f981c23d5b9b7a65c10ab9c8d48193071598b7b96c1dd6c85125bfce196bf0237b7f4c4a10600379a5d402d9bf04972774cab2e261860e559ef6ada97a3003f731741bde4b5b085b66337c672af663916a597b1d3f1cf42d1b432daa4e6fb459ef87e29afe19e33a3c5cdd1d4bada2be20839f1d1d1f604e1cc8591987d9ed8dfca63fcbdb95c692768f73b1ce3fb4847096293cb7b17dee711a6a71fd4f57093804736d19f682f5afba887e0f5c7660dbd0706d5ed500ebfdc15affb3dccd948e546ea6099a65e405b341335fa6dc443edd45f9fc8520a7bef275f80e4c0a70b5d3c3f9fc10ce08a9a409c74912d1105b183a395b266ddb15245985beef841d1a4e0250cdde0e9f63bc2726f58f0a69b7e3cbd95f77e4134fe09f070d3e4d922dde3cd3b93bbd8008fbf2b7d2830365fa88a64faeb1b6f3251f42db82788f65325e90008a3096906a2410003f2a6c3239d49870c857a0b56c2eb42be88fe0bf64225cf8b762fe5226750b28ef3d1fdc272cad4f4160fc1b06d92777d2c6d714186f007fe056e9b33e60416285bdb570132533db976bb4b1c54849d56d580638b8c30a93637b5b0b2f77155d6c4b08cb476bc513e1c49aea24ff960ce54e7464ad089503ee711e0e9d952c6fef8bdebef15e3858739fe0e5492835349b764dfd0768abf6140cc07fc5af01df2eeeec1e0f76a21d7cfc8437b3dfc8cdd83db5c903ef27ff71a05e8b3a891d8d0ca9e8ae8c4a7d1a2df315bdfff3c2d49b71b1eba89bbbbf8af337c0fd297716ab47f70a219b08cc50f90e2f3c3edbcf0aa276bcd775e01890e8475c2c718fa8173ba650d4da9086548f1ed604a51505ccd8730ba56f11db7381bacc51359da6bacd96b7cf12eb1cf04759182b5dcaca53060ed4692e4b80e3a1650ecd70676d507e4a31ac3586449e43e42139fd1c71e8e667434bc2968057979fc2434a7626fc11ff08f4f7190b9f0ab9d23ef3e49b6e4fe90623f81d0fd2a78c67683b461148a96cca25048bfe982fbd75e86b426323a026e1a8fb540f01071fbb7a1ce5230d167e03ab3627c14582e29c59239f9d4c224ec7a9eaf93e56da1bb8ae318af40536aa5b4a406121848adc4e24dd607a5f8e138daa73032091ff5822d834f172c502f25ecb89e173467c1622180cc0912a85d99b21a480bacc1d9ff510c39d897ed4c7e6094d5b463538d67e94cb5302fc5777e236c726be71166c50c054331e3c370d41cfbd702459cc0bb27a11e28bb31ae5e9e4c6abfde270a7693df78381bab7dd1e411316f6319b76a0210afe93b3bdfc6e7bfb32f65b962e116627492fc67857d45eb57e3c34ffee7ce2ebebdf9965d71c47f896704b8dec5dc0e9411707f1400d024f07eefb1eeb2ba74cfc169f137f7247456c99dfeec8b777af5300e768422c968f86c4740ff097dcc647418c6f06ef465b73d54c95a3615e56c73f8b92ac32c3eda6e43b82ccd8fa534cae8aff35f121f5f8743ab3f7727709169d0762951c4005a892696e6c06eadb6bdd2c46e874cd5c9149cd0f9afd99638434cb56b0c116cc37a59f61e76c7e695a36aa06751796695dcb1c668876b4017ca01d4f30841e14dd23cc73d1335449820f06c1e9a83b9fb5c3d5898b4d049240c213b4057e74a9e60d4324b115d9676ca99d2c3bb970ad8f44c6888ddb9447ee8851148eead7a5eb5a9df88e879846aa6acbdf3d5116e5173318f5889c82b32dcb12abc0841047ae421b80b3a1501dcf5d5bb2e528841c74b691960a84533b1d4c6b0fd530d113848ba02363081399515def1de543301a69fb881490a3adf6198d57fbec8379b32838f628a917054aebbb88aa8838490b354b171826286bf8af941664a1cb5979fe2572c129f07c2aa684a892356016b709c3cf13cbf971f58dfdd1850114b6b93e82a0c1aae3a5e1cea9aff999c7eb3a18942f9aa49d767c0cb8a431b18fe27e828205073116e40f27e693b1deca70d3563a228dec4b8f2a88384fb5638ff62a7d9cfc31858de59d9f5c7237686a1e06266fe19b10d36b5249938251b204bb931659aecdf5e1c72e66d14aea005481ba33ee7715090196c1c480f589c0b6b9451c03699d94fc7b38875caa6bf7785a1174566c67effff54106417d353bb179e08f2ea1aba642ee8bb7d9dce8f796988bcdb7b154189b60e3fa2e4a26949a62c00866bacd34b79661835b8b024bd76268442acb64f816e7a4b3dfdfec3fb28b5c0233a132cd1509b38c87ac2dc53680c6c080b6b40490d0c468957e3047bb377392764325751c7ece1e6150177484e274091d7104a4451980b6af75522d44aede475dee9f66b3b20e3a18d0ca559adc4321fd903a7cbeefa2efc73d75369ef3276a0c4e1681b0ebee06e279f6eedeaca5e4b8d1c9b274a70383dcf1429c87495ce7cb803027fb963f2bccdb15cb00919a8a54d0896b85e61cb16beefe5739567a69fdd8196560c82b0cb5f8a72908324d754a7bba2817aabc0f0daa0ff8d0c7c528f841a0811a57d86cae8be3ecfdb3e2e81633133eb0c0003e5878946e26921c315c9b416c6a75dcb8c10e51bb914d12a1c56a7ff0cf4f4bc72aa5d2541431435ed85ca11d0f3becd84c89283c5c722b77fba994031fd7085b2f8c0006b1510a02608cb354be030848d5a485373e6b99f45144dac5a8dfc90dee84e2a5b379ccde427383fe3e7c7d6ceee8231d9b1fb899f20cff696a702f8e5460bc4f864698689fea1afed3824f64258082dc9953943d5c6bff154f1c0dbfc7cabbf8026f2632f1aa5a207d19e54b1a86fe83c6c024e6ab8b4cdb315ea0bd0f7cef30d3565c590c305f4c11bcb9f1975cee92abde36e1ef81d5a80e89d33eff272291d1d7fd6653128de967f685bfd5da359179810a3ff609b8b5a4e68d8757dab0c80d922b6243963627eaaed301d140e772c8c1e687d126887896eda90d42b5da83d95a016e71aa7d2f2f5298ac69d7d2188ce2bdbd6c33865dc2f8e2908f413b3859d216c9176b9bf86eb7df23b1f4599d2c13668a0abf7258d8a293c997f40c607e8bc0b09fa1e90b2c7eb771100c1d64a15797ecc000cb7a49be5ac7fa8f9dd24c1586b31934eb8a2241fbdba0d01e2c52fee66082d8fccb0f4edf77ac39f1d259e8da6db8b1b542960e866311714585a4810edbf371636b0e46f8919e8c332db99212a3fbba38f9192f67e1c8a1d64326d3cdb0fbf97ee45bdd6057db2a9308c6c542a8b9f5fb44b4b508d57c4f53068179d95089b9e282b9ea6c8440b7f79c9f32496a465414c267e812c232508b8e926f17835da33c6bbbc47b779784fd01057967cccdfe11e3841a839f9eac757d525df0b468c788fdb7bd5a4437841a1396015e6a6a0a193f4ccd6096240f24ac0f6a2393e16effee3cee90b4af8859b37ef613a9200faf407f54b2f8686a9f4c09bc6eb9600888461c2a5a4232c928974fafcf7c1f45a78707aad21b926980667ef1f9f43c717bc1a9a8ff8631fedb334182b5a167aeeeeda1b00d7bc039dbed0413b8dc602b2f314a6633651750ccb1b7c6a03bafe35558ec65a3d25d9d7691d66cdeb7b0ca4fa2446d698ef1b949cd0ce50effd38f3ee678b90aa37ed9506801454093ec9c8125466bf55212e5b85684612ccaaf580c9ed9ed479b1299ab9b8d3fc2d53752de0f90b2180fb0823fc394d52afd3274054ad3045a368d7fdb87aa0abb920dfbf468d00378da0d926f21296bd383564960ed2761003e248af8a8c9c85d27e14c7a7836f3934dd7dd855b0cdf992a7ba810047b931edb7deb8e1e554a61ceeb806c5af963d081acffd13cf57f0bcd0944941ae50fcc7aeeebcc43b19b92cf63d34fed8180fe08f63db6ac058f72324ad31d8a14cf1a52f7726be8188ee77f796bbb378015f298f64309ee5f8b6e88894f84a3e11f69564805f424e9e20743b2e3d62923ec9133df005ee436ac64e5e01f45e40218bc7425a39dbf63aece4690a776c16e1bb872bcd0b264fc18055251366c994736944d460d3aa7b93639df0b7ae3509bf7e184cd95e44c8ee27b755016d74044ac33a308fa9b7439feaa5fab1b40830e55b60dd0958bca5b1ef6cac9f860d0bec0d0d509c998ff22acf40acf2a918553562c86addc8644b54b59b419aca161e4e619e78d407f57404f5a88570fd8839a82e5fb831d767709e26f0a63c474d715b47ead396cce061cd8c9ac825e576af452aa5d5e3e3ff11f069fb6dfc5716386e7edca602b0664bf51feebf3d976585ad18d564f8941bb733123de0a6cb217dd5e6b598321e7cd892d9ca26f738dbf61436e1876d72e2817c16e0fb785c49144d6def2199dbab51182828c562ee1ca3b828256054b665f033f9470409a7a9c1a16c9f14f5f8b76b597e77b5715aafbd13c8dfd9a5fd078c14d505553882ea814b3302897722968b25c5d5aeec60553beceec0581dd3e45f8e8d7fd175c23e08e392c7ed815a5c0b297971397ef73e03ab03047b85b72b381118ce192fa52ff24dd9fbb3db4bd6bea2c75f982afbc86f1f509e235d719c31026625bcf139de54ea5fb3aad37e0fc4da384bf81c848deecd5de74c79d6d46c1484abf3c35cafcbbbd9be791f72588611d58f79f510240a8be7e13a73fab748bc0d58e9859c1b40cf77f40c8d3436f2292313f2a8ffbb9393565901b1c9b8207169e5c6c3e4f227fb1a34ec7ead5afca36f0f4a6a04d9f96cd890c578c236ab9fccdbfc607dd9a3531fbe3fb1cb4c96f266a8cb968821872a22797ff10dc7921bd30057d0038bbdb438e344858d6e81aacd9bbf44ef9e555ea9e6b5072a5895964eeb8703e86d1e4ac76fcec3d6afa2ff0fe18a55c00f5ad55f41c5fc42281f30c21d4fcca005aaa2b65671d13979c8579b9d42025ab8ad3796243ce740446063d864a5556bcd634b30e8c50327ec426c68e11a9b23129aac02027c80276d400158ffbaadadba2c83861d55099ec61df0c665a14a02fef794fc769c9b691800032d47314868bc98a397f529454263809d883539bd1462f1fc955d62bb5b16e7bce57f02f2214d3501da02925cd75be9c4eba8f682fcb6f1a95e4187fb41c1b40ccfd01add36e0185031f2b2697df55d9e68e98834845335721056795f21e1f5f93ebc038b0ac4d01f21b2d459f4767612cb3a696f89ff0639305f900966af56abbedf59e0d29c61c1bed8e00164ee5ac76989b18879967c92800bd97e7b17ff8a7a7f02e7c9da01b954d0e9275be06c891ef226b31bbb8e70252c6bbd7831e409f5429249c83a7fe49c5c26436743c7b850fda4d303f66533637856ea108e476820ac23a58b4c3fbc1ad630311f1707a67c5e972e4756fcd1d336927c1e816d178436705abf51c037a1b9f3e406ee4c096783d055c20e2430d05635ea81e88a90fb994125ee1208b131dc05614987bd292b923aacaa8d6f50afbe17f4ce23575109506333f261983a9a416e209e8380077a475a40bceb50394bdd98532950b4de21146b7ae1d73330abe1cac5433c901ac829d446e57cb43ffe398d20f2907c3bcacbdc63503f5e3e2dc297f37e9d0b158f247999a312c21bb432fd16e0fc90902b68e7fc5467ce79e0cbee393e46f8304449c025f96d08c4d3480d870b7131e4c5915a9c2752f688e04bea643a4589e60efd60a6f095dd31dc9298df85eac46313200a540913fa73b89add3bc24527fe9ccf1620c1a10bc03eef2017150ae0121e65fb0e7714f13746e51d4e18f4abc81b80b7e0610ae2bf842f14bea21cb3b076fa5c5bec416b0fccbaa3ed6ab38c66c7eff4e4c415eb8ac10feb0d1fc9560d6b37d70cea8a66ba9119cc643d28cecd8e0aa68c05602c29d1e3636527a30e53451160da78f21e8eebb98382c543292df37a0e56eaf36eae28bb5580a3c04157f1bb1984845ae7dcbfa5ea6a40bc6fbe593b5ae002917f66faf8653ffaeed39154c590fc85d92e152020737077598854180bdcfa932d37da13024e821c17c4a557e5c304b355f0300f2b095b963a473a671e7a9a65458e7d538d5fee54486aaee2647c779eadcda89aa86359f6562028b2d92fb64ae44a5fc1d629010d328b18ee4af2c6cfab83b40aff94f6272f5c6ba73d08193f6fb85a259cdcc26e41e8ba6e95575236b3934ab78c675f635e1b746a3e2e8c3b67bb3508ba5e9dc59fb4ce990389e8c8d4dcc555ef77d007adac34559b0248c7c9b5411e932a2bf12de58a5ae55dc5feaf02c4e63da13a2ad506dc2b32146c1e85e79da6c9f8b51eb2ab8f0f4792ae41395d9722671936848744a6b33411ec5bf57dd14a2e667eb570e75d2d6b6ae442414b32344c38774cd092244ee9885275a71fb092489d493a5c9214c78a41f52723065e8a247f5b6461ceac27f94c75672b4f64d827709de211f6db32f39f6b88114a2ffd807743353879c7fe86b0177e2d71e8b4ebdbe2cd2148b8f875a3ff26c959cf1a7e1ece184bcbad5875c7f6dc70a5cb04bef9576987c22d2205d022c94038bde29d27f103a20b94cc49b2f6003d7209cde384c5357a904651a146e6c66e96272d12b5f1a0c37a690f8f82e245730957cc9056540c18dcbd3113974ad872b67ed764a14a6b23dace687b2c02de769ee6770e745c1a0eedd325d29169798d0189d1f70b61d6a1c963891ed06dd6f285f40dc327db80038f35d8bc6f3236dcc0ac625b18e048b32b3667eb6a87d6d799ca67d5412ba1e28047c4619f32deda5259ffd4d9493d338bb4ca05e32b7c2b7ead3f32b2d323b0e6b6e0937c2233960a314cf86102d3651ac59acd4fb2be9bc8d57c1837909bf70f65786b32408f1bf679758d3ffe885020c76030c68a374129c27346af4fb04269e6c287b498a54629c3e93f4274953c12309ae07aceb7b134e44513b091046e773d01c95413e33e5db62f61b25bc90ed157179415b5ca45c43a45040a5dee8846a7a8d522fe6149f0a7d70986b77bae4b58df48ce80e8c36334fc1c0ea22cffc62bedd5ede53f3d0f0ca6d6cb9350fd2c9a1f2bb4e12c16eab34c38136ff6349fe4baba1a7a82cea430c6f77e235251994920356c4e45fabc720e50e0a1946c02801fb2d1d30077707026ed744e58fd1818fb700c5fde2f4f6c09c4775b996fa4b655bb75a87379464ba423ac673c9ee86282f0a2581a78bb758cb83304606509d8202d85783c36cdcb77f5a9a2f4037feba54c14713f0c77665428aa5f9bc5349760b113b7a68ce75af5397e72f82abd5ee070df14902572703e50019c808fb9e9fa7aef40c460df146b61cab934e252e4dee5afd1bd64e1012af9aa72a5718b1306ec15c98c504d06bb03f64040a6daf7c42cb5d2e2c44c4f9611ee652db64b655899388488268547556bed073212d6d63de5d76b747e85c1a1ec474195a2e31aa89b2e6a227db8bfaf564289df07a66706aca34171d106c5072c4ae64b01251a801657525798f25ac576bc137720299e35b962e1c783f0d542330de57701c124c7f18d55430b29abaee2744d70d5ba376ce7e6310fbb288d8c06e43eb53419c358fb2b08315a099d2ca48c0bf6c59da0782c91c7c178621be6d13e38d956f736cfcbed3ee0a64eb480f32e5f7829424d93716ac1896bc8f7676254726490c84d06687b116c96b31ef01c92a7e0b090da47a968adbc873c346df68337cb3118af0095f9bb1839244931496143cec2bbbd048c39bf41e2379f15666a98adce9a4b9ccfdf1b30405957ceae4949618dba1ce907b25e3e07fa3db424db643caf6e245de91ae1ade33225f16bec658218168e3722e7a39f4ab88a5de0f81c9ae3810566d1ffa0d841845fe4c426e0f45d38e3b5245f52627ab104629c820b7e87b814aabf562fa2af18733189cded4b209f8a8fb663c28a6f1ec4c7ca616ed5f4a533ebf2a83b31ae880410e81df10d4975f8eb1615d754085e81503867e14cdeaff2121633549a991c4edbb9511f6bbb5c16c264c945b803f38faa3f08af97cac10941565a11317766f043ad896b71806aa5ab00532aa971eae06bd5a2bd3014964312d1e94188201242513b2444eb97cf8959bc0fef80a231f26baae9413f9fc7903858e99ccff03289b576f6cc5e3ca32573cb143eb087ef30146b901dc4074614f2bdcace17035c4296f46a067b736b8a8963a68965d89653f46eff537c731b0cf993da924dc8eadd054f2af4f0cb5e95b662b91ca7412452e46c69e66c3ee92441c32f6797afd447a25815393c42f758232e475aa41ebb7173ce5abf5fa0f4aff832fc6e77e495d29fb08121b170d85aacc65709694f4d7ceb15e774362a0cf3f42919ad5f5eb0463ac950b142850421458f0db81fa4b49587eec752d6702cbc8b30e8baed09dd33192814421ae2e47c629592ac1a9f70e0b923d8b5c890b3bbeff5434b69c5d5acf614d94d94c40b2d411b37072a5949d333e7565d931580a269561244c7268b715d1c394e2d566d9e2d917de0fab8b702d3a7ee45ea93a064177df4ddce837e3df8c8b6f1426b501bdd28e773074c4a064da4d6e38405877ef7eecad9df09c534161f027e6539de80ca69cb1c870bcb1999ec75eac9f9f3588f307ca3a85986a2cf8012cc6c3bedfeb7bec3a83b08dc711812b2c897eaf21f03218e2d2c26789a95f985c340c2083fa94e09e80fd009087de494ecc13eed31babd8e69b01b98d69e8ec96dbab477c3fbb57d11f7031cbbbb9d210f656880ddaccabe83a5a0893c82e447e45e4c550b286688a72c8cd50cc2326454da5bb0d908326c4726a4dee56a77591f01bcc981fd24c85ce87ba217be7703fbcd1ecec3b342b73e0f12fafe747a7237d19161596a9d997ae2848fb19eefcaddd9192635a6364a0e84f5736ca4ad1bd59a20942f7f12efae47811178ff302d3d1b1c8edd9e5c5582214febff5277996bf5b4e636782292d07c7b4abd4b3741729e122c8fcc812cb2db4c9c7baebba011a3639006a35d54c1c467aa230329376a6ff668396efaa79f45b4a44e7dcd034de3bddb32ffdce37f593900886abaab5b2461ed879829eea4ace58822282137c5ee2297bdd26197b030eb59604a954fd8283f172647d9927ef82c7fa07e4c028b6b5ae5ee04e6335a34238022b616034bb899be40143893e708d9823ec2539872743a2389e595c4ccc94344a68c558d1ab39e001109a28b12dbaeda6ab53431d6e7b5d4d2b9307fe73fb1f2fe144eaed3556dccabd4e7e91cc53c829621c79c3caffacf15833f83a4b2b5a656e7e74311db3f45862bfe86c96b0c543c557534be6bf881fd87de070ad1a54ca979c736721804178e5020eca7a69a603a32a3818c710ff4dd596a7b251a735a417b70da2a3bca9124e6400f151d0b20e5a4529b779c6463d39e0f723ccb2df031d2d5d4b404630c1ddec8b0dd211d64e35289fb119dc38e7067f13d58e11bf4df1f32f76619330db29b2affc44951c1ca1fffa7fa7ccd8f5e6620a116258346d108d793fb6a5e3dc604d2b0c99b3b9eaf553bbf94cb039c2a08e392e5cb0a9b926c418b21a0b29df55246594cc23041051560c96685219d37f28d060e16709df0e02ae6cfd26e466ecab8ac4191a5629f9be245ea9d0e1d3665a16f4b60f6b7d4ebb7aac0ecae0be09198784c827c48a4935c281ff813ee0cb6f61711d0eb83f7441ba7f2e120726c4d6d6f2a3bce3f40ef93fa9126cfdf08c32ce5afc35a88e612933e79e3771caa1b03c032c61886fbac8d87e6040b7f34788bec724a9bdcf2f7d7e58fb03e27ad6a9746f876756bd9e6aa25a2445ace8e839c6da141b0cb3dd05467bf140481751fd3393b4ed2b3ab37a32b988297ebd2bd84b6b64b3e94a70a6db1f7cfa7674cdf261cb236fe8c9652d0b3c243d439dd14a2ea787fb90ebd250ca7aa6e16545fadfbde7deae8b7aa75f026b54165004ef1d4683cbe691064b6367d223dfcfae2cb8bfd523bbe172ec7998ea54923d2e1662e7ed4a6582fadb6a2264cb8999e340479b0d7002231656603e2cb15cf043dd42937bd2968c564cbadd54ca3b72f501387594d2ec43f5aac5764edd244463e60ad13519a026919740b40a6f759be529bc981c213efa836f8276776a347c460c03ebdd1a062945aa8a9aa26a572ead1210f93d5174d9eabdc03dde8821c58767b1d870eb38bf573d3ff8462622afefd32ffe5c13277fcb4737d9be71a5be1419d12168a4862bcad3989b465bf59709c3025ab71d389afc2ceb38fbc514a73d4d0d19b59bd2a47af7e617173d5b4e5cda7c9ad941526009d501d9452ac4fd6cd4aab81fb2e20438da8bffad4aa066c5fc371412a36885de8b02483ac48941077b4badd35311725ac9592f311975a0bd2207583853bfec09b7eeaade489d3adf39c3f883decda3a9fe6dbfd3c40f7696ef84a84c6395ca27e16fe1e0e617ffc7a74ba89dde33d1d921c7ffa719fa1e106214975196c97b31168bbf394723f6a78d7aa497dffc9f4a1cc30a625610b0557c391e8150356fe54c94418624317a1c687f83015452b08807a1a08de8169d7e8633635a1a8f13bd95a15c160c827f4cf98e2df1a1656e3012288c03aae6c9a9e78a19b379cb0881e23e4d6a14fc0e60bd8ac4558882831ed9fecfb6c86491ad793b5cbd3d61c4e8abcfa0300b89577217392245e561c5b6b355d26a8f5d9dcaeee966b6fd3594d8faffd2d1e17c85f57666be6cd38b8a27c1301c50e4f5198e32fccdea4c062e7bc85c15207e0f32bc14039ddd499bfdf216b5355baaf58f7ac3261fba14bc77e4988eeda3a749a931fec57ad6419773c03a282683760c018388fa4e74d248cc46881c2312f620b332cbbec2c8788df5f58711cbe4a219a72ca148d9345948d5e639f32df6adcb52d307d180d63a3af4ca4d7fb218c233288dc8f564359b37e3c92bf2411b7a049a208c86fbe1d90cb9faf5e020c567a72d1798c9b455a12f1e442019a99c4e4fed7e8a21c97bf6c5a82c2bde30d0a040c0d2a25d2d4e7d2262ecf361bcd77f23e79279a3f213545a2554162e1a213b1031f5fdc9bc630ffb5bfb4ef64df21a43f75596282a6d969459c00ab3e5514b8790aac3880f1c7f8b4e199b17ad8b0113ad6a741a5e20523674ca225443b6b6c22bfd664aa734c3013d8257d385b586de0e1a71268db37ff072576af845e2f49c7b0ab8aeade9789b138d5e3e985b9f433139406a32d7d097339fd916f6da84b6c0e2c1c52326a54944b9e79fcb3b2a898e239cbf52246a2665f43bdf9633ba6ef309bd20da390719426e3e7cd26346363e84c5cb57b620f3566c5ebbc54d6c530fa63f72797d3bd49d424d454c5661b38cc391c3b1a5819a4522d2c72fb739d652f6de786eb4ea90d02934d95f34cf817dd21d0165ea9e87ee5610e414ea32e53b441897b5fbcfa0edf85fec80165d055c3a6be4e934d24bb8c541f15a7ff3a6198ee89e27b0b05188c3cf72d1bf9a4921049de034728ee8ff909ea89846dc36acdb489d968b8a39406e1238bb73e14012ae81215711716a93421259190857ae82bacf71148108fd28e9328890a23970db6dad5596e56f865d644a719524a6ee745bbd43da5b2a53ccab2cf326e85fe13830768d23144a8b678dddae0e65af2933c2948c712a9f97c880ef0b3f469a76dad675243f3a529ad010390743ede6504ad4f464855350e3ea07a2c07fd66245c2e605beb18fe206ec27051b9197713af33f39b3e23e10440b3af4e33a0972ac7bec6b29f7c295ea935b8c671461c18ee46b5da93389a3eb0d0422f16b76efc641b744d8bd9564570471a540c5919ff90dc86241a45e10a252d561f9611879da75dcf95290487d6dba2f8e6029b1d8f60a4a3c9db2168b249e61d28e7b054c3b8f558d61460aa91b6215795cfcb98b8fb405830ecf533f75d65a67c1317470d4f2a59e62569759975c80331fbfd3b4e563d55611bc0de22ec462770c34cd952e976aeac0046ea055d0d4791b98caa7cbd41a451aec0abafbddf6158478545b23d13a638bb0a995ede94ec2b9dc759252fb4af58d99709f9f49ccbfe074a46e46ee4042aa9dc02e952082729f95b6f6bab22db0fe32619b15a70355fdc25b70734c982a4b3b9ad4f6c1b038497f3c63da2cd2f80534a00ef9004445c543771f772fb10258df3aee9ea66becbffd5235fe601e2c7a4dc2b66004026fc171bded1b31aa3fcb761d38800fba285dba66cee57a05e70d2fbd98a9a9e0401b38e8402728ad896f6c9728b0ca3e898b31c92bf3b9483a793ee11579508806851e902625367a08a7272d5dd2a13e768567598092d117f6d2fdf09615b85af4c81bbe26bb207ff487bf9f8d3ba9cff0e3b079944732e735d8537c9da94100611ee1bebda65f92206aea8ad23afd61edb2142037313352d641fb1abdde00551ceb3c0a814e605129ed725a56d7633b0b68976bd780f061a611cc900380d12b4e4f1f262ae84744f22b1cf30dc5d60c1251094b25fd8e2984817bb7268575bb278c2aaca5e904b7fa959101823df660edc619df03b56ffd336c755dd1b0882f04fea59a4f211a2f311109dfbac713cbeaccf42a61c3b9cb37f021981b055115180a00f49b132ac00983ce547c6f144ec48fa5c39758b32b3a4e5d4c9d2d4d754aa78bb083dd9e1b49b5de0ace8f38a71e4e60c39e6ad2d074541080379e0daf5d6a36a2d0f529d575c311134370113e60dfffa089713a4cc63c61ccb1ce45136f31bf5ad8270fdbc4a88af5c5a68c9961da2d612a67e784942565c8015101c616eb30647dac6747000009d53ec7e71e5898f4fc6b21220b48a74b5e21a9a6dd486f424a3fd70dd8836bcf1072bf2cf2d8495a423fac12070ea52e96b43c8644b0529d6be19930165b59b58785be2beeb5c09273228b9a405987076df2cbb6ea5661ba387d428abcc2fe0841fdce8a0eeffe44a9f4d5d08b13dd3491deda2a11ea1bd3ed9286a6abc66ec462311ac792c528108226ba709df1762d4aefbe48a4ac2a83a9e594eb3620a03da70af8aa348a97993e77084aa29aa8ed121f48713a0ca04065fc1473efc5117affce1dc12b79d3b51c4ecc03a5e163a3f44ab37e1173a49e2f45a110fea050d333bcaaa9438c8771735ed3d38289078075be1dc3a0906bd0fbab62d1ede381fcbc75ab50e5617075f707af04eaddfd8471d2f0a17acd41e7587050c08823ba4a7094897efd4becb1075e182407f26f9324b771c59219e1c532fe3a636d004c4d543dbe1d4ab5baacd310d22184dd0160627d7346a93d931e6af2f43bc2ac9339585af93521cc287c18749e30e29b90a6b19db32baacc39f23e0afccc01addad51c1b3ee2ebb41488db9ca42bb2cfd74087dbd0fba967b785a11eca602b8c94f853be55d32c9c774e0e0a84c77ab9e284eaa728c5cf1514289eaff2bb5cd73ec1393574256028abc7f5735fccf2d7b1b0d04a28f11a3c8dbcc6c1284fc21d2f3e0519f2ae66d15b53f90f37a9c7c547b8e022654f2848bc945bfc1e0469aecd2c2370fba0ccb6943553abf826c323d38a4a9b0c071603fba508b2686bf8a06bc1f442937c64a0e44fe4b45bfa9b969cd7342f2595dd42cc4d5a324b86075e86a051276c175e43325e10e28289b0ff6b4ea635189840bf31388f07d8ea227a780adf86b0699c01e0719096805340e313fbc2f618b0084cc8ee183e95b35f8bc6b890297599a7dc2db8691e9a619b06b812c588f86918dc120f32b210f2acd88f55acffc3413eb3f7a1951304034d48faf052b4913f8a15d0c5b298da6144f17cf977bf1143daf7352df41a50a530a00a778155ea48dc05debd65c22b237c5965ab6eaefb6b932e6d0a7263911ee54ea166813f9bcdddbec10ed636e4b62bd24f2f690e2faee410a6680a973defc2a75bd5fbb235831151786e4b0504e6cfe9e4cec545ccb1d457d99723d59a89afbbca70848f75a08919b991805873f15de916bcf3b6f4ba3156a81b47bc4d6a26fd81d8df3369b0c14d338cb822893d41c8848f19f9edee37c3901740494192a91ef93d4e3185ddfff1e9bc2a811658625c0d287ffaee5fca0132d7055a97b36ddc611faf2371c4542094a5199b04e9a7a93f07593edb882d9d8a793916703acfa1d376beb1049d5f937a5ce3f46e329131dc745d47159056ae18e935b1393e124ed7aa6f9b1551aa3301c4e98254a431cb4bba31c062e3b24b90989d43c991ebe53286e9421d86560602105a651a86e15bf18016a8ebb746e34f1a911900d131453c7926831ad8f362640adf516bba73342220530e1cf4254b741600cbc1b42db180a90848c285810ec9330f4020c0566a23a47c66b4e49ff910b24e118c5fc3e3508385e55dd636d0681c2b58b0e6533bfbbf0666f83a1e359a8922587417f7aee5dfe3c0d4f3ed16543a21c9b84faa2e1077594931b2271c7db359e133abe9f3156356f83cf3246fbb5d899cc5036ce13eb78d67e0ace3fa34533f9db8dcbf1c30af5dd74f027d6f64a0dacbc52f235d75d65f6e6ee2287021e3e8d3d4738eb64949ccfe0f28e36a22b87ec153d4257b798fbde1aafdeeb290eafda8e85bab2f79a5cc0919f10ccb5d4f98641d6f43199189d79d9032d876c3803f0ed0d252f6e5f43d523021023a1bd6948715c31d01147c402e24c755473641c78ce28a72f98bfbf9007c17c3cb7b1a726005c1c1e5c10221c974c93f1f2f834bfdc8fb057ddc30a40c8b35f4f43bd0a647feee2c36e5336f208bbef62697bb6c88cf81d3c03d41ab956c5cf48f0c7ba788eb1025f65e925122604cb8e08f37a25044c80a88ee745e92bd3030ff15e768165a30458636bafe8ba887ef5ca69caebfb4e5d9c11d9fcc8f1900bb3cb3c38bb7f15f527f68a6d098c9fadd9f48cb22b3b069d4f166de8e350cfd32a4cf0ba8bb568e8fb398a90dfb133742cac1bd7bed759398c8567cd631681f017346c60d8a94da87cc1b6e113f3cb83a22bd36e0a292859a165da7d134fff0f6074c785f0b270e502bc28969d9c5676b4488a83a79f10a73ec254691cc8cac3570b41c86be6af4fbf2f8fff2447f572c6ca7efa8eb42efde477da45ab360f719bfa1588b06e0a546e4527dc31fdc1d7676a2bb26027d31f0d39374762810f2b0e08a785cb0d963a169473de93d6b9fa98b7f6de3dc88eb8502229c0cd8485bc43e18d998da3b23afb5a2376296e6a377f7c0dd483ecc2e1b85096c43d9e1c73d0d8bf59a04d86563a1af100e8bf9887d72a8b2d9f4ce4cd8668d5ed70ac7ea04e05ee9948bb11b802b47e40a743ac5423f5679703e9012292dfab98025f251e9b3c7ff692b219b4662e21f4e194806a73283790810103a57d5b60f6a848df402643fa51b54525eede42ef63816caeb24779a36728d79d65e80f27023b86e316dd3eaec34973ebac62cb04fad7a7a621bd0a39f53aecf00b980c061af579be8a90dd91f96f7f1fc982fbbc9194fb92ccb1f2a7f2bd65f0fb3fea32f8ea8dad70999add19b1aea0bc9f8898dbd6ab40a58aa70bf2197c66be89e7139399fdeca31c13611a2ce83a68594d2626283ec558ccda4525cfdee16a5bf4bfc73000d5abb4cca6d1aca320f790e228d5ce88da4fb4b4ce9a0bd9e50d3a2e2e6bfc4a839b5e25fa98675f8fd09f9e2533d80e38c54f3bf04f9e0c892c944aca1e12a28d7e73ff6e04369fb636c2d1bdda82773945528fe25b5d9206713a2170b5aa57e3a66f11f527ddc4ff923482f973bbf8ca0bea17c31994d30728cddb75b902caaeba95217558734422185ef8bc20a7b70283d63b52e9c6832cda1f43ef5290a4b191a958b829c77bbc0193b8b1b00529cb10db033bdec6ce80deab003bda90132f912b96e7fa1db8fb16c9edfc627ad080c8e42254ed467d42b508046c116bc6b087d92ae5ed9af61ef9e79f51a26e765249f403d55724bd3cd40725c1c3acc421c309905787a6d693c8d96aa40c4077b80199f4b600ec28007ae40608809b19ac704cff22201a39ef42e8edd4b0cc8acc7f9e40d84997ebe8717c999de1a8e9cffca4c46f09e44858945069176479fb07a9b32a2f4c14a2bda7858b5ed8e7e0474776953ca33ecd2c05b6746402f1df3181ec03c2a60043b3b91ce15e300ffb9f655f74d88e83a805666ca59b9cdbee26cc0c564a080a759314f7162ed7579395844435f890ec3c068de103db6ccd82523739d086e549ae61b352c5baa8bcaa8059b1ef66857d26e2877ec2095de513e1c48c9bebf304e9832af6a8dbfaeb992ccdf25559c59882f2fde58626e9e2484f18f4992ab23fef78fec89880d10d39f2aa0c082b85c88f30689357348110ec7e66548dafd96e1ce10b007bdd653f1d8ca145a1a1eca0c264614d4861dbd4925a56ae1dd3b2854512ed51acb78430857b67c6f1feacc5328b32c86225c9c43e87ccd6d75364dc85f9c94508b9efb5b52f7d95e149e81592eaa5a89d7a6550b731c296ab280e32a8bbe0f97e1e74e1ddc8215805cd6595821b064ca473902249eac09ad69d3ce885efd42e3cfa0eb2f1a2b728fe6e71eec1e9fe09be52848878f93ed81e91ea6e359af5fa12f1bdebdc82d31f3c9ecc57737cc7cf16dcb6cb7ba11dd419ccfe9eb1c73cfc5d18a74e3adc2ada312cd47b79e11099b7a6303c02eb6eee926d1c557735a329b5463691710f835bb98401288b5332ad746efd6506bbfbaa21b29c1b58b1a5fcfdd31a2257ff4053708f90034e362e8535a8c3681556a986d12d50826da58033495a3c307616fe9ab396274feaf8d9c2e33cac4e1676eee590d557aaeab1d8e4be27149ee8fdba3eba723285f1bf292161892279fd768a53ef4bf53a45145595f176ae792cc7a63c89c4c6273b658316cae6bc058607af6195f604abe2bc77d04de3fab71f24333f14f8aa0698913c699ce471826d798b84e641023fcdca74a38dfd0988aa4c6f7f7ea0bbdb4c6060fde33b538548c023f165bc865f6c832e0930da01e5ba1a190a82847ebdc74b80263682b5cca263292b0f516dfdca499a0b78ecbd495e098f91a36502926b11104a178af596d4a68fed2cad54de864f5857f4a3b248dbea2a742842158869ef1a0f72efdbc2c72ed37a253fa74da6c47d4d69a28f198acbe64893ec766a11eb1f41dd77020aa78b826caef2934c0b8dcd9f4bd2987f75f0d7a6e9357f8b730a3b56b4fa50b7c9d8b8b4f5c22d7bd630181fd024d89d6e6242d23598b574e81ced69e8f215862b9bbb6280f5b4aef08f5bf7376563fb79560bb791712f3e254334ab124adb537203336016a116918a7e2209f3c5604ea2535fdab74271eb97deb8dd2bd33f7c05d52570a520508d612d4819ffbee231b39486e893fef6a659b97e87fce4ca81c869c9a6943a84370e5d45cbb982bfd763febc6fb0cbfff78ea17ca0a9744781353c8a230d1ca19e98b7ad8c5b409ccd49b958e278fee7718f0fd7591489d9fadfb47ea9f88e7d3f4716b5e30bb6d75f38da45f7a2cc82a63e11b83e00b89f464df3f2e557a6e89f863f732dc6a4ba3091c7c1f60224f14cfa2c1c31182b8fed9183ed96d4d7fc65b6531e6d02c46c1f818fb40fb11def242bbfa01060906131961d60aa9eb09bc59a0805919aff4b2cf767bb29b61fec5d6cd5bb0aae2d45f2587a3ff76f65ef3390c13ba6c2f42e2a805432a48c664385a81fd355cf3decf6c220bab522b197bfc663a10afd0d482b488b192017073034395cef54737364179d41b4c8413b4d3e0a7f6a5be0ba5b50051acffce3148324a888e5f13d3bdd93f2cd7c770fcf051edba59a0352e64c7c1c25a9a3d3b87f4c665a44dc0e6e5239049ef8941a6dd382298f11687aae6dbc4c47f80c44f924b36936b997cd262fada585a52819e76bc674632464779b723fd0ec1cd03534c02946af8bc893052fdeb7c811bdcf5c411ee8f7ee7918a3ebddf8bcf2876e407dc5edcae2b6bb4e986699db187140ac758c3160819bb538013e2f1ed998229fbabd4835867ca5c07169bc752d23ae7bf576d0a23beac82c697894bebc1248d1bbc42599e066de6f49770c90d0750ce0d2ae0e3a3ce282308e84887dd1df9046a9f8cbf2f30994c50589b6a1687262cd215d234ea5ce27795b7e00f796d1c3ab75ab45c43a46b015cabf5b27d936bbf242ab79bd206154652a0274fab2ddbbc08b81274764894eaec39e541e6a9dabc2af33b3de6b4cdeb3d1ef6a277d39101c24f19ab728ff024e693027f2febdc34d735c8258970cd0a8013d50a6d847035df58b1cf070b955ca7fd3f4a4c54ebf231888108ff6db315408403680de4df3a958494382e2f8dd7b5e9997e301c2049f97f543cef7c66bb386852ca5cdc5bfe44b6c1ec7f89b719b7f18b5e30c48bcf600946b6975c45cc2495aaf0bccdf0cb022c0f8aece740dfbdf39b86d7cd6e693af256508f2e445bee92e16fdcad474ff32971d39ee6d2de3e9bda2a33d275b816ab1e81e9f7ff97b8243d31b15203482e281e9af863b4182c12f656b32347ce90b66da2096face56996afbb54f93b54477c00fa5ab821af0f7764d0a88b709947977689591fa23988eead3438a76ff7d6051b17394f1b63667602c694ef7efc8a9d2b731d540a2a650b5b37bfa8ae92321477b250c2e466c773661d0ac998b53ec6721035b1ba8ca1ac6c23e046cd45a44fa74261e91e681183dd7d3ae82e215d8aa446987d410bdc7856bf6a4d8c222ba679935b9783e48e11c8fdc9260285cf96814262cce10f8dea0d07e2b46057e8f536daec66b7ee19eb9f14b24fbbd35c98fc64b320393496ac8c82a192bb2ffb4f26037090ce6e827572defc8ffb3bd9153ade022a8c7ff9776d5b7ccb99319ec52ed14c6bbbf2d2dd729f6e959456cab984b2f850fe1f04f9fac464164b7a3ab58389e51afa63214185e81aeb7519e819d0da001f782d6b33e3625e4774ce157aa238b3fc87a03c33d1a3d800145b861ec47aaa61aa410f35872bcc74cbacc62944248dcee491f9564cb6bf01700a74cb5eaa61c578c26ecc037f083eb909f5d647827a639918134f785e072f1542f86b14ea5e20bee156107dde1ed2df97e266daa9253e2702f152ca69e3a31a61cdffe680bc87fa30ef9b3647d7afb025377cc03332252de207ebcdab0b2cac3d55347b972069e5e30bf77e7289a8aecf18118e94f2b2a4a9dc4f3162daedaa8a3197a9a3c23b4fb2b9a7dbb25077618a06fdf313782aa67f15e6f9b856daf16e9dda765f7b9d8fbfe819a4f77b439ee691a8f58dcc262d06d0d11359c3a092e9065c97ec1caf4c298bde917581574d49eddec7254dc60cab50ca7fac3b7d4b0db5d6b16bc57fa455004fe109dee19a3fbaf3b3893378bd913b4696e89f</script>
  <div class="hbe hbe-content">
    <div class="hbe hbe-input hbe-input-default">
      <input class="hbe hbe-input-field hbe-input-field-default" type="password" id="hbePass">
      <label class="hbe hbe-input-label hbe-input-label-default" for="hbePass">
        <span class="hbe hbe-input-label-content hbe-input-label-content-default">您好，这里需要密码。</span>
      </label>
    </div>
  </div>
</div>
<script data-pjax src="/blog/lib/hbe.js"></script><link href="/blog/css/hbe.style.css" rel="stylesheet" type="text/css">
      </section>

      
      
        <nav class="article-nav">
          
            <div class="article-nav-item layout-padding">
  <article class="card-container article-nav-card content-padding--primary soft-size--large soft-style--box">
    
    <div class="card-text">
      
        <a href="/blog/2023/09/24/java%E8%B0%83%E7%94%A8btw/" itemprop="url">
          <h2 class="card-text--title text-ellipsis">java调用btw</h2>
        </a>
      
      <div class="card-text--row">Newer</div>
    </div>
  </article>
</div>
          
          
            <div class="article-nav-item layout-padding">
  <article class="card-container article-nav-card content-padding--primary soft-size--large soft-style--box">
    
    <div class="card-text">
      
        <a href="/blog/2023/05/20/springboot%E4%BD%BF%E7%94%A8%E7%BC%93%E5%AD%98%E6%B3%A8%E8%A7%A3/" itemprop="url">
          <h2 class="card-text--title text-ellipsis">springboot使用缓存注解</h2>
        </a>
      
      <div class="card-text--row">Older</div>
    </div>
  </article>
</div>
          
        </nav>
      

      <section class="page-message-container layout-padding">
        


  
  

  
  


      </section>
    </div>
    <div class="widget-info">
      <section class="widget-author widget-item layout-margin content-padding--primary soft-size--large soft-style--box">
  <div class="widget-body">
    
      <img src="/blog/icon.gif" class="soft-size--round soft-style--box" alt="QAQ">
    
    
      <h2>QAQ</h2>
    
    
      <p>贵在坚持</p>
    

    <div class="count-box">
      <div class="count-box--item">
        <svg class="icon icon-article" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M240.51564747 647.74217627h196.07203239c16.59071043 0 30.16492806-13.57421762 30.16492805-30.16492806V165.10332731c0-33.18142087-30.16492806-60.32985613-60.32985612-60.32985611H245.04038668C225.43318342 104.7734712 210.35071939 119.85593522 210.35071939 139.46313845V617.57724821c0 16.59071043 13.57421762 30.16492806 30.16492808 30.16492806z m663.62841731-452.47392089v482.63884894c0 33.18142087-27.14843525 60.32985613-60.32985612 60.32985613H180.18579134c-33.18142087 0-60.32985613-27.14843525-60.32985612-60.32985613V195.26825538c-49.77213131 0-90.49478418 40.72265287-90.49478417 90.49478417v452.4739209c0 49.77213131 40.72265287 90.49478418 90.49478417 90.49478417h286.56681657c16.59071043 0 30.16492806 13.57421762 30.16492807 30.16492807s13.57421762 30.16492806 30.16492805 30.16492806h90.49478418c16.59071043 0 30.16492806-13.57421762 30.16492805-30.16492806s13.57421762-30.16492806 30.16492807-30.16492807h286.56681657c49.77213131 0 90.49478418-40.72265287 90.49478417-90.49478417V285.76303955c0-49.77213131-40.72265287-90.49478418-90.49478417-90.49478417zM587.41232014 647.74217627h191.54729318c19.60720323 0 34.68966726-15.08246403 34.68966729-34.68966727V134.93839925c0-16.59071043-13.57421762-30.16492806-30.16492808-30.16492805H617.57724821c-30.16492806 0-60.32985613 27.14843525-60.32985612 60.32985611v452.4739209c0 16.59071043 13.57421762 30.16492806 30.16492805 30.16492806z" fill="currentColor"></path>
</svg>
        <span>22</span>
      </div>
      <div class="count-box--item">
        <svg class="icon icon-categories" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M900.3614811 257.09082106h-339.81629553l-67.96326003-101.9448889c-19.41807444-29.12711113-48.54518557-43.69066667-82.52681443-43.69066667H123.6385189c-53.39970333 0-97.09036999 43.69066667-97.09037113 97.09036999v582.54222222c0 53.39970333 43.69066667 97.09036999 97.09037113 97.09037002h776.7229622c53.39970333 0 97.09036999-43.69066667 97.09037113-97.09037002V354.18119104c0-53.39970333-43.69066667-97.09036999-97.09037113-97.09036998z m-97.09036999 242.72592554H220.72888889c-24.27259221 0-48.54518557-24.27259221-48.54518556-48.54518556s24.27259221-48.54518557 48.54518556-48.54518444h582.54222222c24.27259221 0 48.54518557 24.27259221 48.54518556 48.54518444s-24.27259221 48.54518557-48.54518556 48.54518556z" fill="currentColor"></path>
</svg>
        0
      </div>
      <div class="count-box--item">
        <svg class="icon icon-tags" viewBox="0 0 1098 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M283.42180005 272q0-28.38857157-20.09142843-48.48000001t-48.47999998-20.09142842-48.48000002 20.09142842-20.09142846 48.48000001 20.09142846 48.48 48.48000002 20.09142843 48.47999998-20.09142843 20.09142843-48.48zM855.0332285 580.57142843q0 28.38857157-19.81714313 48.2057147l-263.03999997 263.58857157q-20.9142853 19.81714313-48.75428534 19.81714312-28.38857157 0-48.20571468-19.81714312l-383.04-383.58857157q-20.36571468-19.81714313-34.55999999-54.10285688t-14.19428534-62.6742853l0-222.85714313q0-27.84000002 20.36571469-48.20571469t48.2057147-20.36571466l222.85714313 0q28.38857157 0 62.6742853 14.19428529t54.65142842 34.55999999l383.04000001 382.49142843q19.81714313 20.9142853 19.81714314 48.75428532zM1060.74751475 580.57142843q0 28.38857157-19.81714313 48.2057147l-263.04 263.58857157q-20.9142853 19.81714313-48.75428531 19.81714312-19.26857155 0-31.61142843-7.47428531t-28.38857159-24.13714314l251.79428534-251.7942853q19.81714313-19.81714313 19.81714308-48.20571469 0-27.84000002-19.81714308-48.75428531l-383.04000001-382.49142845q-20.36571468-20.36571468-54.65142842-34.55999999t-62.67428532-14.19428534l120 0q28.38857157 0 62.67428532 14.19428534t54.65142842 34.55999999l383.03999998 382.49142845q19.81714313 20.9142853 19.81714314 48.75428531z" fill="currentColor"></path>
</svg>
        8
      </div>
    </div>
  </div>
</section>

      

      
<section class="widet-notice widget-item layout-margin content-padding--primary soft-size--large soft-style--box">
  <div class="widget-title">
    <svg class="icon icon-notice" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M512 945.02305225v28.15620663a24.27259221 24.27259221 0 0 1-24.27259221 24.27259335H394.0352a48.54518557 48.54518557 0 0 1-41.74885888-23.78714112l-110.68302222-184.47170332a132.04290333 132.04290333 0 0 1-17.47626667-48.54518557h118.4502511a200.97706667 200.97706667 0 0 1 76.21594113 14.56355556l20.38897777 133.49925888a48.54518557 48.54518557 0 0 0 36.40888888 27.67075555l16.01991111 2.91271112a24.27259221 24.27259221 0 0 1 20.38897778 25.72894889zM997.45185223 463.45481443a194.18074112 194.18074112 0 0 1-38.8361489 116.50844445 24.75804445 24.75804445 0 0 1-36.4088889 0l-34.95253333-34.95253333a24.27259221 24.27259221 0 0 1-2.91271111-30.58346667 97.09036999 97.09036999 0 0 0 0-106.79940665 24.27259221 24.27259221 0 0 1 2.91271111-30.58346666l34.95253333-34.95253334a24.75804445 24.75804445 0 0 1 18.93262223-7.28177777 26.2144 26.2144 0 0 1 17.47626667 9.70903665A194.18074112 194.18074112 0 0 1 997.45185223 463.45481443z m-194.18074112-388.36148111v776.72296335a48.54518557 48.54518557 0 0 1-48.54518556 48.54518443h-28.64165888a48.54518557 48.54518557 0 0 1-33.98163001-14.07810332l-145.63555556-143.20829668A291.27111111 291.27111111 0 0 0 342.57730333 657.63555556H172.18370333a145.63555556 145.63555556 0 0 1-145.63555556-145.63555556v-97.09036999a145.63555556 145.63555556 0 0 1 145.63555556-145.63555556h170.3936a291.27111111 291.27111111 0 0 0 206.31703779-85.43952668l145.63555555-143.20829554a48.54518557 48.54518557 0 0 1 33.98162888-14.07810446H754.72592555a48.54518557 48.54518557 0 0 1 48.54518556 48.54518555z" fill="currentColor"></path>
</svg>
    <span>NOTICE</span>
  </div>
  <div class="widget-body">
    <p>flex-block主题部分重构，详情查看https://github.com/miiiku/flex-block</p>
  </div>
</section>


      <section class="widget-categorys widget-item layout-margin content-padding--primary soft-size--large soft-style--box">
  <div class="widget-title">
    <svg class="icon icon-categories" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M900.3614811 257.09082106h-339.81629553l-67.96326003-101.9448889c-19.41807444-29.12711113-48.54518557-43.69066667-82.52681443-43.69066667H123.6385189c-53.39970333 0-97.09036999 43.69066667-97.09037113 97.09036999v582.54222222c0 53.39970333 43.69066667 97.09036999 97.09037113 97.09037002h776.7229622c53.39970333 0 97.09036999-43.69066667 97.09037113-97.09037002V354.18119104c0-53.39970333-43.69066667-97.09036999-97.09037113-97.09036998z m-97.09036999 242.72592554H220.72888889c-24.27259221 0-48.54518557-24.27259221-48.54518556-48.54518556s24.27259221-48.54518557 48.54518556-48.54518444h582.54222222c24.27259221 0 48.54518557 24.27259221 48.54518556 48.54518444s-24.27259221 48.54518557-48.54518556 48.54518556z" fill="currentColor"></path>
</svg>
    <span>CATEGORYS</span>
  </div>
  <div class="widget-body">
    <ul class="categorys-list">
      
    </ul>
  </div>
</section>

      <section class="widget-tags widget-item  layout-margin content-padding--primary soft-size--large soft-style--box">
  <div class="widget-title">
    <svg class="icon icon-tags" viewBox="0 0 1098 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M283.42180005 272q0-28.38857157-20.09142843-48.48000001t-48.47999998-20.09142842-48.48000002 20.09142842-20.09142846 48.48000001 20.09142846 48.48 48.48000002 20.09142843 48.47999998-20.09142843 20.09142843-48.48zM855.0332285 580.57142843q0 28.38857157-19.81714313 48.2057147l-263.03999997 263.58857157q-20.9142853 19.81714313-48.75428534 19.81714312-28.38857157 0-48.20571468-19.81714312l-383.04-383.58857157q-20.36571468-19.81714313-34.55999999-54.10285688t-14.19428534-62.6742853l0-222.85714313q0-27.84000002 20.36571469-48.20571469t48.2057147-20.36571466l222.85714313 0q28.38857157 0 62.6742853 14.19428529t54.65142842 34.55999999l383.04000001 382.49142843q19.81714313 20.9142853 19.81714314 48.75428532zM1060.74751475 580.57142843q0 28.38857157-19.81714313 48.2057147l-263.04 263.58857157q-20.9142853 19.81714313-48.75428531 19.81714312-19.26857155 0-31.61142843-7.47428531t-28.38857159-24.13714314l251.79428534-251.7942853q19.81714313-19.81714313 19.81714308-48.20571469 0-27.84000002-19.81714308-48.75428531l-383.04000001-382.49142845q-20.36571468-20.36571468-54.65142842-34.55999999t-62.67428532-14.19428534l120 0q28.38857157 0 62.67428532 14.19428534t54.65142842 34.55999999l383.03999998 382.49142845q19.81714313 20.9142853 19.81714314 48.75428531z" fill="currentColor"></path>
</svg>
    <span>TAGS</span>
  </div>
  <div class="widget-body">
    <div class="tags-cloud">
      <a href="/blog/tags/Activiti/" style="font-size: 13.33px;" class="tags-cloud-3">Activiti</a> <a href="/blog/tags/Nginx/" style="font-size: 10px;" class="tags-cloud-0">Nginx</a> <a href="/blog/tags/PG%E6%95%B0%E6%8D%AE%E5%BA%93/" style="font-size: 13.33px;" class="tags-cloud-3">PG数据库</a> <a href="/blog/tags/goView/" style="font-size: 13.33px;" class="tags-cloud-3">goView</a> <a href="/blog/tags/java/" style="font-size: 20px;" class="tags-cloud-10">java</a> <a href="/blog/tags/vue/" style="font-size: 16.67px;" class="tags-cloud-7">vue</a> <a href="/blog/tags/%E5%AF%BC%E5%87%BAExcel/" style="font-size: 16.67px;" class="tags-cloud-7">导出Excel</a> <a href="/blog/tags/%E6%8A%A5%E9%94%99/" style="font-size: 10px;" class="tags-cloud-0">报错</a>
    </div>
  </div>
</section>
    </div>
  </article>
</div>

    <!-- footer container -->
<footer id="footer" class="footer">
  <div class="footer-container">
    
    <div class="social-icons">
      
        
      
        
      
        
      
        
          <a href="https://github.com/miiiku/" class="soft-size--primary soft-style--box" target="_blank" rel="noopener noreferrer">
            <svg class="icon icon-github" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M64.6 512c0 195.6 125.4 361.9 300.1 422.9 23.5 5.9 19.9-10.8 19.9-22.2v-77.6c-135.8 15.9-141.3-74-150.5-89-18.5-31.5-61.9-39.5-49-54.5 31-15.9 62.5 4 98.9 58 26.4 39.1 77.9 32.5 104.1 26 5.7-23.5 17.9-44.5 34.7-60.9-140.7-25.2-199.4-111.1-199.4-213.3 0-49.5 16.4-95.1 48.4-131.8-20.4-60.6 1.9-112.4 4.9-120.1 58.2-5.2 118.5 41.6 123.3 45.3 33.1-8.9 70.8-13.7 112.9-13.7 42.4 0 80.3 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.4-43.9 2.9 7.7 24.7 58.3 5.5 118.1 32.5 36.8 49 82.8 49 132.4 0 102.3-59 188.3-200.2 213.2 23.5 23.3 38.1 55.5 38.1 91.1v112.7c0.8 9 0 17.9 15.1 17.9C832.7 877 960.4 709.4 960.4 512.1c0-247.5-200.6-447.9-447.9-447.9C265 64.1 64.6 264.5 64.6 512z"></path>
</svg>
          </a>
        
      
        
          <a href="https://twitter.com/guanquanhong" class="soft-size--primary soft-style--box" target="_blank" rel="noopener noreferrer">
            <svg class="icon icon-twitter" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M962.285714 233.142857q-38.285714 56-92.571429 95.428571 0.571429 8 0.571429 24 0 74.285714-21.714286 148.285714t-66 142-105.428571 120.285714-147.428571 83.428571-184.571429 31.142857q-154.857143 0-283.428571-82.857143 20 2.285714 44.571429 2.285714 128.571429 0 229.142857-78.857143-60-1.142857-107.428571-36.857143t-65.142857-91.142857q18.857143 2.857143 34.857143 2.857143 24.571429 0 48.571429-6.285714-64-13.142857-106-63.714286t-42-117.428571l0-2.285714q38.857143 21.714286 83.428571 23.428571-37.714286-25.142857-60-65.714286t-22.285714-88q0-50.285714 25.142857-93.142857 69.142857 85.142857 168.285714 136.285714t212.285714 56.857143q-4.571429-21.714286-4.571429-42.285714 0-76.571429 54-130.571429t130.571429-54q80 0 134.857143 58.285714 62.285714-12 117.142857-44.571429-21.142857 65.714286-81.142857 101.714286 53.142857-5.714286 106.285714-28.571429z"></path>
</svg>
          </a>
        
      
    </div>
     
    <p>&copy; 2024 <a href="/" target="_blank">QAQ</a></p>

    

    <p>Powered by <a href="https://hexo.io" target="_blank" rel="noopener noreferrer">Hexo</a> Theme - <a href="https://github.com/miiiku/flex-block" target="_blank" rel="noopener noreferrer author">flex-block</a></p>

    <p>
      <a href="javascript:;" id="theme-light">🌞 浅色</a>
      <a href="javascript:;" id="theme-dark">🌛 深色</a>
      <a href="javascript:;" id="theme-auto">🤖️ 自动</a>
    </p>
  </div>
</footer>
  </div>

  <div class="back-to-top-fixed soft-size--round soft-style--box">
    <svg class="icon icon-back-to-top" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
      <path d="M725.333333 426.666667c-12.8 0-21.333333-4.266667-29.866667-12.8l-213.333333-213.333333c-17.066667-17.066667-17.066667-42.666667 0-59.733333s42.666667-17.066667 59.733333 0l213.333333 213.333333c17.066667 17.066667 17.066667 42.666667 0 59.733333C746.666667 422.4 738.133333 426.666667 725.333333 426.666667z"></path>
      <path d="M298.666667 426.666667c-12.8 0-21.333333-4.266667-29.866667-12.8-17.066667-17.066667-17.066667-42.666667 0-59.733333l213.333333-213.333333c17.066667-17.066667 42.666667-17.066667 59.733333 0s17.066667 42.666667 0 59.733333l-213.333333 213.333333C320 422.4 311.466667 426.666667 298.666667 426.666667z"></path>
      <path d="M512 896c-25.6 0-42.666667-17.066667-42.666667-42.666667L469.333333 170.666667c0-25.6 17.066667-42.666667 42.666667-42.666667s42.666667 17.066667 42.666667 42.666667l0 682.666667C554.666667 878.933333 537.6 896 512 896z"></path>
    </svg>
  </div>

  
  <!-- aplayer -->


<!-- dplayer -->


<!-- copy button  -->
<script src="https://cdn.jsdelivr.net/npm/clipboard@2.0.11/dist/clipboard.min.js"></script>

<!-- https://clipboardjs.com/ -->


<script type="text/javascript">
	(function () {
		function getCodeType (elem) {
			const classs = Array.from(elem.classList.values());
			if (classs && classs.length > 1) {
				return classs[1];
			}
			return "plain";
		}

		window.addEventListener("DOMContentLoaded", () => {
			const copyBtnClass = "copy-btn";
			//  instantiate clipboardjs 
			const clipboard = new ClipboardJS('.' + copyBtnClass);

			clipboard.on('success', function (e) {
				console.info('Action:', e.action);
				console.info('Text:', e.text);
				console.info('Trigger:', e.trigger);
				if (e.trigger) {
					e.trigger.classList.add("copied");
					setTimeout(() => {
						e.trigger.classList.remove("copied");
					}, 3000);
				}
				e.clearSelection();
			});

			clipboard.on('error', function (e) {
				console.error('Action:', e.action);
				console.error('Trigger:', e.trigger);
			});

			document.querySelectorAll('figure.highlight').forEach((elem) => {
				const codeContent = elem.querySelector("td.code");
				const copyButton = document.createElement('button');
				copyButton.setAttribute("class", copyBtnClass);
				copyButton.setAttribute("title", "Copy Code");
				copyButton.setAttribute("data-clipboard-text", codeContent.innerText);
				elem.insertBefore(copyButton, elem.children[0]);
			});
		})
	})();
</script>








  


  


  




<script src="/blog/js/script.js"></script>


  
  <!-- 尾部用户自定义相关内容 -->
</body>
</html>
